Files
notes_estom/Spring/Spring介绍.md
2020-07-21 09:13:01 +08:00

2.9 KiB
Raw Blame History

简介

Spring是轻量级企业级解决方案可以基于Java Spring解决Java EE的所有问题。

特性

IOC容器控制反转

通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。

IoC是一个很大的概念,可以用不同的方式实现。其主要形式有两种: 依赖查找容器提供回调接口和上下文条件给组件。EJB和Apache Avalon 都使用这种方式。这样一来组件就必须使用容器提供的API来查找资源和协作对象仅有的控制反转只体现在那些回调方法上也就是上面所说的 类型1容器将调用这些回调方法从而让应用代码获得相关资源。 依赖注入组件不做定位查询只提供普通的Java方法让容器去决定依赖关系。容器全权负责的组件的装配它会把符合依赖关系的对象通过JavaBean属性或者构造函数传递给需要的对象。通过JavaBean属性注射依赖关系的做法称为设值方法注入(Setter Injection)将依赖关系作为构造函数参数传入的做法称为构造器注入Constructor Injection Spring 的 IoC 设计支持以下功能:

依赖注入 依赖检查 自动装配 支持集合 指定初始化方法和销毁方法 支持回调某些方法(但是需要实现 Spring 接口,略有侵入)

AOP

在软件业AOP为Aspect Oriented Programming的缩写意为面向切面编程通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续是软件开发中的一个热点也是Spring框架中的一个重要内容是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离从而使得业务逻辑各部分之间的耦合度降低提高程序的可重用性同时提高了开发的效率。

主要功能 日志记录,性能统计,安全控制,事务处理,异常处理等等。 主要意图 将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来,通过对这些行为的分离,我们希望可以将它们独立到非指导业务逻辑的方法中,进而改变这些行为的时候不影响业务逻辑的代码。

AOP是Spring框架面向切面的编程思想AOP采用一种称为“横切”的技术将涉及多业务流程的通用功能抽取并单独封装形成独立的切面在合适的时机将这些切面横向切入到业务流程指定的位置中。

例如记录日志。

AOP存在的目的是为了解耦。AOP可以让一组类共享相同的行为在OOP只能通过集成类和实现接口来时代码的耦合性增强且类集成只能为单继承阻碍更多行为添加到一组类上AOP弥补了OOP的不足