(本片学习记录摘抄于Java 3y的文章,供自己学习记录,支持原创)
Spring IOC解决的是对象管理和对象依赖。Spring把对象交给IOC容器管理。
控制反转:本来是我们自己new 一个对象,现在交给IOC容器。
对象的创建交给外部容器完成,这个就做控制反转。
依赖注入:对象无需自行创建或管理它们的依赖关系,依赖关系被自动注入到需要它们的对象中
对象之间的依赖关系
最简单理解「依赖注入」和「控制反转」:本来我们的对象都是「由我们自己」new出来的,现在我们把这个对象的创建权限和对象之间的依赖关系交由「IOC容器」来管理。
怎么把对象交给IOC容器管理 四种方式:
- 注解
- XML
- JavaConfig
- 基于Groovy DSL配置
日常开发中,我们很多时候用@Component注解标识将对象放到「IOC容器」中,用@Autowired注解将对象注入
Spring AOP 例如我新增一个用户,需要对数据库进行一个新增的操作。新增前需要开启事务,新增后,需要提交事务。类似修改 、删除操作都要开启事务,关闭事务。在代码里就会有这样的重复代码,该怎么把这段重复代码提取出来。
Spring AOP底层基于动态代理