1、简介
Spring是一个开源的轻量级的JavaEE企业级开发应用框架。目的用于简化企业级应用程序开发。Spring是由大量的封装组件组成。符合现有程序的低耦合、高内聚的特点。
2、Spring的优势
1)方便解耦,简化开发
2)AOP编程的支持
3)声明式事务的支持
4)方便程序的测试
5)方便集成各种优秀的框架
6)降低JavaEE API的使用难度
3、Spring按功能分为五个模块
1)数据访问和集成:JDBC、ORM、OXM、JSM、事物管理
2)Web及远程操作:MVC、Portlet、Web Service
3)测试框架
4)AOP:Spring AOP 、Aspects、Instrument
5)IOC:Bean、Context、表达式语言
控制反转(IOC)是Spring容器的内核。IOC就是通过容器来控制业务对象之间的依赖关系,而非传统现实中的由代码直接控制
5、Spring的注入方式:Set注入(spring 通过property标签给对象添加属性入门)、构造方法注入、接口注入
6、AOP是面向切面编程。
AOP为了解决程序中的共性问题,通过预编译方式和运行期动态代理的方式,在不修改源代码的情况下,为对象添加新的方法和属性。
AOP的关键术语
1)切面(Aspect):是共有的功能实现
2)通知(Advice):即增强,是切面的具体实现。以目标方法为参照点,根据放置的位置的地方不同,可分为前置增强(Before,一般用于身份验证和权限等方面的设计)、后置增强(AfterReturning,一般用于事务和日志等方面的设计)、异常增强(AfterThrowing,一般用于与自定义异常结合使用)、环绕增强(Around,在目标对象的前后触发)和引介增强(IntroductionIntreceptor,一般用于对目标对象进行扩展)
3)连接点(Joinpoint):是程序在运行过程中能够插入切面的地点。
4)切入点(Pointcut):用于定义通知应该切入到那些连接点上
5)目标对象(Target):即将切入切面的对象
6)代理对象(Proxy):将通知应用到目标对象之后被动态创建的对象
代理是一种常用的设计模式,其目的就是为其对象提供一个代理以控制对某个对象的访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理
7)织入(Weaving):将切面应用到目标对象从而创建一个新的代理对象的过程。
AOP与OOP的主要区别在于:AOP是被动地获得新的方法和属性。
在项目中AOP主要用于权限、缓存、内容传递、错误处理、延迟加载、调试、性能优化、持久化、资源池、同步以及事务等方面