一、本周学习内容
1. IOC容器与DI依赖注入
Bean的生命周期:理解@Bean注解定义Bean,掌握@Configuration配置类,实践InitializingBean和DisposableBean接口的初始化与销毁逻辑。
依赖注入方式:对比@Autowired(按类型)、@Resource(按名称)和构造器注入的差异,解决循环依赖问题(通过构造器注入+@Lazy延迟加载)。
2. AOP面向切面编程
动态代理机制:掌握JDK动态代理(接口代理)与CGLIB代理(类代理)的原理,通过@Aspect定义切面,实践@Before、@Around等五种通知类型。
切点表达式:熟练使用execution(* com.example.service.*.*(..))匹配方法,结合@annotation和args实现参数绑定。
事务管理:通过@Transactional注解实现声明式事务,理解propagation.REQUIRES_NEW和isolation.SERIALIZABLE的隔离级别配置。
本周从控制反转的哲学思想到切面编程的工程实践,深刻体会到Spring框架的“约定优于配置”理念。IOC让对象依赖关系变得透明,DI解耦了类之间的硬编码,而AOP则像一把手术刀,精准剥离横切关注点(如日志、事务)。初期在循环依赖与代理机制上踩坑,但通过调试源码和阅读《Spring实战》逐步攻克。未来计划将Spring与之前学习的Linux/Docker结合,探索微服务架构下的全链路开发。