📄🦌🙌🐟🏖️
日志记录
Where there is a where there is a way
随机文章
按住 Shift 横向滚动
热门文章
按住 Shift 横向滚动
Spring异常处理

Spring异常处理

程序开发中异常处理不规范,可通过创建全局异常处理器统一管理异常并响应。使用`@RestControllerAdvice`和`@ExceptionHandler`注解快速实现。项目异常分为三类:业务异常(用户操作导致)、系统异常(可预见的不可控问题,如数据库宕机)和其他异常(未预料到的错误)。处理方案:业务异常发送针对性消息提醒用户;系统异常发送固定消息安抚用户,记录日志并通知维护人员;其他异常同样发送固定消息、记录日志并通知维护,以纳入预期管理。

Spring参数配置

Spring参数配置

本文介绍了SpringBoot中的配置管理方法。首先,通过`@Value`注解可将硬编码的URL、密钥等参数移至配置文件,便于维护,但需注意变量不能用static/final修饰,且需依赖注入。其次,支持`.properties`、`.yml`等配置文件格式,YAML语法简洁,支持对象、Map、List等数据结构。第三,`@ConfigurationProperties`可批量注入配置属性,减少`@Value`的重复编写。最后,通过`application-{profile}`多环境配置文件(如dev、prod),配合`spring.profiles.active`和Maven的profiles配置,实现开发、测试、生产环境的灵活切换,并可在主配置中通过`spring.config.import`引入其他配置文件。这些方法提升了代码的可维护性和环境适应性。

Spring文件上传.md

Spring文件上传.md

文章介绍了Spring文件上传的核心要点:前端需POST请求、multipart/form-data类型及file类型input;后端用MultipartFile接收。本地存储通过transferTo方法实现,默认最大1MB,可配置。云存储以阿里云OSS为例,说明使用SDK集成步骤。

SpringBoot

SpringBoot

Spring Boot 是 Spring 生态的快速开发框架,通过“约定优于配置”简化应用搭建。核心特性包括自动配置、内嵌服务器(如Tomcat)、Starter依赖简化依赖管理、生产就绪的Actuator监控、外部化配置及零XML配置。项目可打包为可执行JAR,通过`java -jar`快速启动,支持切换内嵌服务器。起步依赖机制通过预定义依赖集合实现版本统一管理,避免依赖冲突。

SpringMVC核心概念

SpringMVC核心概念

Spring MVC 是 Spring 框架基于 MVC 设计模式的 Web 模块,通过 DispatcherServlet 统一处理请求,核心组件包括 HandlerMapping、Controller、ViewResolver 等。快速入门需添加依赖、创建 @Controller 类并使用 @RequestMapping 和 @ResponseBody 注解,通过 AbstractAnnotationConfigDispatcherServletInitializer 初始化容器。Bean 加载控制可通过 @ComponentScan 的 excludeFilters 或指定扫描包分离 Spring 与 SpringMVC 的 Bean。请求支持 GET/POST、普通参数、实体类、JSON(需 @EnableWebMvc 和 @RequestBody)、日期和路径参数。响应可返回页面路径或数据(文本/JSON),建议统一使用 ApiResponse 格式。RESTful 风格通过 @RestController 及 @GetMapping 等注解简化资源操作。拦截器需实现 HandlerInterceptor 接口,在配置类中注册拦截路径,与 Filter 区别在于归属和拦截范围(仅 SpringMVC 访问)。

Spring注解开发

Spring注解开发

本文介绍了Spring注解开发的核心内容:通过`@Component`及其衍生注解(如`@Service`、`@Repository`等)定义Bean,并支持纯注解模式(使用`@Configuration`和`@ComponentScan`替代XML)。Bean管理方面,默认单例,可设置`@Scope`为prototype,通过`@Lazy`实现延迟加载,使用`@PostConstruct`和`@PreDestroy`管理生命周期。依赖注入支持`@Autowired`(按类型)和`@Resource`(按名称),`@Value`用于注入配置文件中的值。第三方Bean通过`@Bean`在配置类中定义,可单独抽离配置类并用`@Import`导入,注入时支持`@Qualifier`按名称指定。整体内容覆盖了Spring注解开发的常见用法,适合快速上手。

Spring核心概念

Spring核心概念

Spring是Java开发的主流框架,其家族包括Spring Cloud(微服务)、Spring Framework(全能框架)和Spring Boot(简化配置)。核心思想为控制反转(IoC)和依赖注入(DI):通过IoC容器管理对象(Bean),将对象创建权从程序转移到外部,降低耦合;DI则在容器内建立Bean间的依赖关系。XML版配置中,通过`<bean>`标签定义Bean,`<property>`实现setter注入,构造器注入则使用`<constructor-arg>`。Bean默认单例,生命周期包括构造、属性注入、初始化、使用和销毁,可通过`init-method`和`destroy-method`控制。自动装配支持按类型、按名称等方式。此外,可通过加载properties文件实现配置外部化。Spring容器由`ApplicationContext`或`BeanFactory`初始化,提供获取Bean的接口。整体遵循高内聚低耦合原则,提升代码可维护性。

Redis分片集群

Redis分片集群

Redis分片集群通过多个master节点解决海量数据存储和高并发写问题,每个master可带多个slave,节点间通过心跳检测健康状态,客户端请求自动转发至正确节点。搭建最小集群需6个实例(3主3从),通过修改配置文件启动服务,并使用`redis-cli --cluster create`命令创建集群。数据存储基于16384个散列插槽,key的CRC16值对16384取余确定插槽位置,支持通过`{}`指定有效部分实现数据分组。集群可动态伸缩,如添加新master节点并分配插槽。故障转移时,master宕机后自动提升slave为新master,也可手动执行`cluster failover`实现无感知迁移。Spring Boot中通过配置`spring.redis.cluster.nodes`指定节点列表,并配合`ReadFrom.REPLICA_PREFERRED`实现读写分离。

Redis哨兵机制

Redis哨兵机制

Redis哨兵机制用于实现主从集群的自动故障恢复。它通过心跳机制监测服务状态,若某实例未在规定时间响应则判定为**主观下线**;当超过指定数量(quorum)的哨兵均判定主观下线时,该实例被判定为**客观下线**。选举新master时,按断开时间、slave-priority(越小优先级越高)、数据偏移量offset(越大越新)和运行ID依次比较。故障转移由哨兵自动完成。 搭建哨兵集群需为每个实例准备配置文件(指定端口、主节点信息及quorum值),启动命令为`redis-sentinel <配置文件>`。 Spring的RedisTemplate底层使用lettuce,可自动感知哨兵集群中的节点变化并切换连接。配置文件中需指定master名称和哨兵节点地址,并可配置读写分离策略(如优先从副本节点读取)。

Redis配置主从

Redis配置主从

本文介绍了Redis主从架构的搭建方法及同步原理。主从集群通过读写分离提升并发能力,以三实例(IP 192.168.150.101-103,端口7001-7003)为例,详细说明了创建目录、配置参数、启动服务和通过`replicaof`命令建立主从关系的步骤。同步原理分为全量同步与增量同步:全量同步基于Replicationld和offset判断数据集一致性,首次连接时master生成RDB并发送给slave;增量同步则利用repl_baklog记录差异数据。优化建议包括启用无磁盘复制、控制内存占用、适当增大repl_baklog、限制slave数量或采用主-从-从链式结构以减少master压力。

© 2026 日志记录