发布网友 发布时间:2022-04-21 01:07
共1个回答
热心网友 时间:2022-06-17 00:25
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动态代理