DI 和 IOC
DI和IOC是差不多的概念。
一个重要特征是接口依赖,是把对象关系推迟到运行时去确定.
DI是一个初始化实例的过程,分为三种1.setter based 2.constructor based 3.interface based,在spring 中就是应用前两种;但又不仅仅是初始化实例,而且是运用接口的概念去实现这种注入依赖。静态地看,只是依赖一个接口,但实际运行起来,是依赖一个实现了该接口的具体类。
IOC就是面向接口编程的应用
1.一个通常的做法(非面向接口编程的方法),对象A依赖对象B,B会作为A的属性,可以理解为A直接控制B;
2.IOC的做法,对象A依赖于接口C,而不直接依赖于实现了接口C的B,也就是A不能直接控制是哪个具体实现了C的B去做相应的事情,而是由我们控制可以由哪个实现了接口C的B去处理,也就是控制反过来了,是由B来决定了,而不是由A,实现就是面向接口编程。
AOP
AOP是动态代理的应用,将具体业务和相应的其它方面(比如日志,权限之类的)划分开来,业务不会知道还有没有其它的功能来辅助,需要的话我就给他加上一个配置就可以,而不用去修改业务代码。
原先是这个样子
{
//日志
//权限
//业务代码
}
现在
{
//业务代码
}
而权限和日志则写在其它的类advice中,只要在配置中说明在调用业务方法时(或前,或后,或别的),调用一下advice就OK了。很容易把一个方面,比如权限或日志从业务代码中剥离出来。
在SPRING中,实现AOP的流程如下:
1.定义业务接口
2.定义业务实现类
3.定义interceptor注入类
4.配置Bean,设置class为proxyFactoryBean
设置其三个属性1.)proxyInterfaces为1
2.)interceptorNames为3
3.)target为2
分享到:
相关推荐
什么是spring,spring核心,spring优点,spring体系结构, 入门案例,DI基础,核心API,文档内附代码
3. 如果一切正常,你会看到使用Java集合、XML API,以及反射技术模拟Spring的get注入和自定义的IoC容器实现的例子--get注入了Hello类和一个MyFrame类,并且实例化之后可以运行! 4. 看一下testDemoSpringDI()方法,...
NULL 博文链接:https://zwhc.iteye.com/blog/665932
控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找...
什么是Ioc和DI
Spring IOC AOP MVC 简单例子
详细讲解了springioc的各种注入方式以及对应的java方式。讲解了springioc和DI的区别,以及注入特殊复杂的属性
spring ioc di aop详解
帮助初学者理解spring框架,有助于提高代码能力java.sql.SQLException: Duplicate entry '2' for key 'PRIMARY' Query: insert into transaction values(?,?,?,?,?) Parameters: [2, 6212999999999, 转出, 6000000, ...
SpringIoC和DI注解开发.pdf
1.spring入门学习 2.spring的ioc容器原理
spring-core:核心模块 依赖注入IOC和DI的最基本实现 spring-beans:Bean工厂与装配 spring-context:上下文,即IOC容器 spring-context-support:对IOC的扩展,以及IOC子容器 spring-context-indexer:类管理组件和...
spring dom4j 解析 依赖DI注入 ioc 反转 反射原理 反射技术
文章Spring项目IOC入门案例、文章Spring项目DI入门案例的原代码。方便大家沟通学习。
day2-Spring IOC 和 DI 注解开发.md
SpringIOC,DI+dynamic proxy 实现盗版AOP的源代码
day-Spring IoC & DI.md
笔记28-JAVAEE之Spring IoC&DI
Java Spring相关设计思想解析IOC DI DL DP
spring的IOC-DI案例。