IoC(控制反转):本来是由应用程序管理的对象之间的依赖关系,现在交给了容器管理,这就叫控制反转,即交给了IoC容器,Spring的IoC容器主要使用DI方式实现的。不需要主动查找,对象的查找、定位和创建全部由容器管理
1、大量减少了Factory和Singleton的数量,使代码层次更加清晰,主要原因是我们不再查找、定位、创建和管理对象之间的依赖关系了,都交给IoC容器管理了
2、Spring的IoC容器是一个轻量级的容器,没有侵入性,不需要依赖容器的API,也不需要实现一些特殊接口
3、一个合理的设计最好尽量避免侵入性
4、会使我们的框架(Struts和HIbernate)工作的更好
5、提供了AOP声明式服务能力,可以针对POJO对象提供声明式服务能力,如:声明式事务
6、对于资源,如Hibernate Session或JDBC Connection我们不在负责开启和关闭
7、鼓励了我们面向接口编程
8、减少了代码中的耦合(解耦合),将耦合推迟到了配置文件中,发生了变化也更容易控制
逝酵炒峻侩踊臭宣酗贫扔虹榔彼速菠洪拨西质嚣骗熬曳投烽遂爆蒂册恩茧springspring
检查安全性
Cross cutting concern
SecurityHandler
模块化
Aspect
对横切性关注点的具体实现称为Advice,Advice可以分为:
Before Advice
After Advice
Throw Advice
Pointcut(add*)
AspectJ
addUser
Joinpoint
Weave
TargetObject
Proxy
Introduction
婉熬墟铬荧吝脂酮澎烫篮舅旺寨液霍申慨辉例凹又磕丁寅睹凤客闹球啸辟springspring
Cross Cutting Concern
是一种独立服务,它会遍布在系统的处理流程之中
Aspect
对横切性关注点的模块化
Advice
对横切性关注点的具体实现
Pointcut
它定义了Advice应用到哪些JoinPoint上,对Spring来说是方法调用
JoinPoint
Advice在应用程序上执行的点或时机,Spring只支持方法的JoinPoint,这个点也可以使属性修改,如:Aspecj可以支持
Weave
将Advice应用到Target Object上的过程叫织入,Spring支持的是动态织入
Target Object
Advice被应用的对象
Proxy
Spring AOP默认使用JDK的动态代理,它的代理是运行时创建,也可以使用CGLIB代理
Introduction
可以动态的为类添加方法
延辈唾旋挎连筷猜哮槛傣穗亏射衷伏杭惋近焊当咨抗冲亩丑潍明曳享吱帮springspring
UserManager
LogManager
事务边界,通常设置到业务逻辑层
addUser()
addLog()
仆药倍邦圣矽斩凯仰告陆腐许转匪沪懂憎馈撕父搞皆棕艳爪一竟恒坏滚纱springspring
传播特性属性
T1
T2
Required
无
T1
T2
T1
Require
spring 来自淘豆网m.daumloan.com转载请标明出处.