Spring 生态
Spring 是 Java 企业级开发的事实标准,核心是 IoC 容器 与 AOP,Spring Boot 与 Spring MVC 在此基础上进一步简化开发。
IoC 容器与 Bean 生命周期
IoC(Inversion of Control)将对象的创建与依赖装配交给容器,使用者通过注入(@Autowired)获取实例,降低耦合。Bean 生命周期主要阶段:实例化 -> 属性注入 -> BeanNameAware/ApplicationContextAware 等回调 -> BeanPostProcessor 前置处理 -> @PostConstruct/InitializingBean -> 自定义初始化 -> BeanPostProcessor 后置处理 -> 使用 -> 销毁回调。
AOP 与动态代理
AOP(Aspect-Oriented Programming)将横切关注点(日志、事务、安全)抽离为切面,通过动态代理织入。Spring 在有接口时使用 JDK 动态代理,生成接口实现类;无接口时使用 CGLIB 生成子类,继承目标类。
Spring Boot 自动配置
@SpringBootApplication 组合了 @SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan。@EnableAutoConfiguration 通过 spring.factories / AutoConfiguration.imports 加载自动配置类,结合 @Conditional 注解按条件生效,免去大量样板配置。
常用注解
@Component 及其衍生注解(@Service、@Repository、@Controller)将类注册为 Bean;@Autowired 按类型注入;@RestController 标注返回 JSON 数据的 Web 控制器,是 @Controller 与 @ResponseBody 的组合。
Spring MVC 请求流程
请求首先经 DispatcherServlet 接收,HandlerMapping 根据 URL 找到对应 HandlerMethod,HandlerAdapter 调用控制器方法,返回值经 HttpMessageConverter 序列化,最终由 ViewResolver 渲染视图(若返回视图)或直接写入响应体。