IOC
- IOC意思是控制反转,它将手动创建对象的控制权交给 Spring 来管理。载体是 IOC 容器,它是一个存放对象的 Map(key, value),当创建对象时,只需要配置好配置文件或注解即可,不用考虑对象是如何被创建的,从而把应用从复杂的依赖关系中解放了出来,降低了对象之间的耦合,增加了项目的可维护性,降低了开发难度。
- IOC 容器的设计主要基于 BeanFactory 和 ApplicationContext 这两个接口,其中 BeanFactory 是最底层接口
- Spring 的 IOC 有三种注入方式: 构造器注入、setter 方法注入、接口注入。
AOP
- AOP意思是面向切面编程。它将那些与业务无关,却被业务模块共同调用的功能(比如事务处理、日志管理、权限控制等)进行了封装,在需要用到的地方之间使用即可,减少了重复代码,降低了模块间的耦合,有利于未来的扩展和维护。
Spring中的两种动态代理(JDK,CGLIB)
- JDK 动态代理:必须借助接口才能产生代理对象。
- CGLIB 动态代理:不需要接口就能实现动态代理。