spring是一个框架,核心技术时ioc、aop,实现解耦合。
spring就是一个容器,存放的是java对象,可以把需要的对象放入到容器中。这样就不需要人来创建对象,而是靠spring容器来管理对象,默认情况下spring中的对象是单例的。
重点:
ioc(控制反转):由容器管理对象,给属性赋值,管理依赖
控制:创建对象的意思
反转:就是不是人建对象,而是由容器创建
正转:就是由人创建对象
ioc技术实现使用的DI(依赖注入):人只需要在项目中提供对象名称,对象的创建,查找,赋值都由容器自己实现,底层实现原理是反射机制
ioc实现业务对象之间的解耦合,例如service和dao对象之间的解耦合。
aop技术(面向切面编程:可以理解为面向 给方法增加功能 代码编程):看作是动态代理的规范化,把实现动态代理的步骤进行了一个规定,定义。
aop作用:1、在目标类不修改源代码的情况下,增加功能
2、减少重复的代码
3、专注业务功能的实现
4、解耦合:业务功能和日志、事务这些非业务功能的耦合
什么时候考虑使用aop技术:
1、当你要给一个系统中存在的类修改功能,但是原有类的功能不完善,但是你还有源代码。使用aop就增加功能
2、你要给项目中的多个类,增加一个相同的功能,使用aop
3、给业务方法增加事务,日志输出