1 回答
TA贡献2037条经验 获得超6个赞
IOC控制反转/DI依赖注入
控制反转就是应用本身(Action)不负责依赖对象(Dao)的创建及维护,依赖对象的创建及
维护是由外部容器(BeanFactory)负责的。这样控制权就由应用转移到了外部容器,控制
权的转移就是所谓反转。
依赖注入就是指:在运行期,由外部容器(BeanFactory)动态地将依赖对象(Dao)注入到
组件(Action)中。
1)依赖注入的方式
DI(Dependency injection 依赖注入)是IoC实现的重要技术,有如下2种方式:
a,setter方式注入
b,构造方式注入
2)IoC和DI的关系
IoC全称Inverse of Control(反向控制或控制反转)
Spring是具有IoC特性的框架。
实现IoC是由Spring容器来完成的,Spring容器通过DI建立起对象(组件、Bean)之
间的关系。
可以这样理解:DI是IoC实现的一种手段,IoC的理论通过DI来实现。
DI用来管理对象(组件、Bean),不用你自己一个个new
AOP中的一些概念
a,切面(aspect):跟类很相似,切面就是通知(Advice)的集合
b,目标对象:要使用Advice操作的方法(异常)的对象
c,连接点(Joinpoint):被拦截到的点,点指的是调用某方法或处理某异常
d,切入点(PointCut):匹配一系列连接点的集合的断言(表达式),是一个表达式,
指明处理方法(Advice)将在何时触发。
e,通知(Advice):拦截到JoinPoint之后要做的事(比如logger())
f,前置通知(Before Advice):在某连接点之前的通知(连接点方法执行之前,做的事)
g,后置通知(After returning Advice):某连接点正常完成以后执行的通知
h,最终通知(after finally Advice):最后执行的操作
AOP用来做日志、声明式事物管理等另外:
Aop的实现
1)目标对象如果实现接口:
spring会在底层使用jdk动态代理,spring以jdk动态代理为主(jdk实现的)
2)目标对象如果没有实现任何接口
spring需要依赖第3方
cglib-nodep-2.1_3.jar来实现,使用的是cglib动态代理
- 1 回答
- 0 关注
- 1293 浏览
添加回答
举报