- 浏览: 684725 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (362)
- java基础 (33)
- html/css+div/javascript (17)
- Ajax/XML/JSON/XSL (7)
- JQuery (11)
- Extjs (1)
- JSP/Servlet (19)
- MVC模式 (4)
- struts 1 (17)
- Struts 2.3.4 (17)
- Spring 3.2 (26)
- Springmvc (3)
- Hibernate 4.1 (21)
- ibatis (6)
- Velocity模板语言 (2)
- Rose框架 (5)
- EJB (1)
- JUnit测试 (2)
- 数据库DB (24)
- 重构 / 设计模式 (3)
- 开发工具IDE (37)
- 数据结构与算法设计 (3)
- Android (12)
- Linux (4)
- bug集合 (29)
- 缓存技术(redis) (3)
- Lucene全文索引 (15)
- maven3.0.5 (4)
- 小工具集合 (18)
- 面试题 (5)
- 闲聊 (11)
- 其他 (4)
- 接口API (2)
- work (2)
- Flex (0)
- JMS (1)
- 开源项目集合 (1)
- 技术博客 (1)
- 分类04 (0)
- 分类05555 (0)
最新评论
-
小小小羊:
好屌...
java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$Refle -
liubinli2005:
这个可以脱底spring。单独使用吗?
DAO层:jade -
cangbaotu:
我觉得对于开发者来说,能脚本化编写爬虫是一件挺开心的事情( ̄▽ ...
网页爬取 -
asjava:
很好的文章, 但每段代码清单都重复了一次.
spring 事务 -
xia635317478:
jethypc 写道验证码的session无法传过去啊 还是我 ...
登陆验证码(struts2实现)
spring的IOC
IOC(Inversion of Control)中文译为控制反转,又称为“依赖注入”(DI =Dependence Injection)
简单的来讲,就是由容器控制程序之间的关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反转”的概念所在:控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。
IOC:控制反转,是一种设计模式。一层含义是控制权的转移:由传统的在程序中控制依赖转移到由容器来控制;第二层是依赖注入:将相互依赖的对象分离,在spring配置文件中描述他们的依赖关系。他们的依赖关系只在使用的时候才建立。简单来说就是不需要NEW一个对象了。
Spring 的AOP和IOC都是为了解决系统代码耦合度过高的问题。使代码重用度高、易于维护。 不过AOP和IOC并不是spring中特有的,只是spring把他们应用的更灵活方便
IOC:
IOC就实现了只要修改配置文件applicationContext.xml,改下就可以注入,而不用修改class类。通过 .getBean() 函数就可以得到一个该teamDao类的对象(IOC),并且该对象已经根据配置文件中指定的属性值进行了初始化设置到teamService里面去(DI)。
1.IOC是什么?
IOC(Inversion of Control)控制反转,IoC是一种新的Java编程模式,目前很多轻量级容器都在广泛使用的模式。
2.IOC解决了什么问题?
在IOC出现以前,组件之间的协调关系是由程序内部代码来控制的,或者说,以前我们使用New关键字来实现两组间之间的依赖关系的。 这种方式就造成了组件之间的互相耦合。IoC(控制反转)就是来解决这个问题的,它将实现组件间的关系从程序内部提到外部容器来管理。也就是说,由容器在运行期将组件间的某种依赖关系动态的注入组件中。
IoC是Spring的核心,贯穿始终。对于Spring框架来说,就是由Spring来负责控制对象的生命周期和对象间的关系。
1.Tomcat启动的时候,自动加载applicationContext.xml文件,
<beanid="teamService"
class="com.chuanxi.training.service.impl.TeamServiceImpl">
<property name="teamDao" ref="teamDao"></property>
</bean>
<beanid="teamDao" class="com.chuanxi.training.dao.hibernate.TeamDaoHibernate">
</bean>
自动将teamDao对象注入到teamService里面,保存在服务器里面(即Context上下文,要得用的时候可以直接从context里面取teamSevice服务)
DI:
依赖注入(Dependency Injection):这就是DI,字面上理解,依赖注入就是将服务注入到使用它的地方。对象只提供普通的方法让容器去决定依赖关系, 容器全权负责组件的装配,它会把符合依赖关系的对象通过属性(JavaBean中的setter)或者是构造子传递给需要的对象。 相对于IoC而言,依赖注入(DI)更加准确地描述了IoC的设计理念。所谓依赖注入,即组件之间的依赖关系由容器在应用系统运行期来决定, 也就是由容器动态地将某种依赖关系的目标对象实例注入到应用系统中的各个关联的组件之中。
Spring中DI有两种实现方式---Setter方式(传值方式即teamService类里面有setTeamDao()方法,把控制反转new的对象teamdao设置到teamService里面去)和构造器方式(引用方式)。
1.applicationContext.xml配置文件里:
<bean class="org.springframework.context.annotation.CommonAnnotationBeanPostProcessor">
</bean>
2.在你要注入的类里面导包:
import javax.annotation.Resource;
3.在再注入的对象上一行写@Resource如下:
@Resource
private TeamService teamService ;
它会自动把前面IOC里面保存在服务器里面的teamService取出来,赋值给该对象,而不用在该类里面写setTeamService() 和 getTeamService()方法。
<!--EndFragment-->
发表评论
-
spring 事务
2014-03-31 11:14 3406Spring 事务异常回滚 ... -
Spring定时器(Quartz)
2013-08-20 22:54 2777Spring定时器(Quartz) 1. ... -
模拟Spring的 IOC 和 DI
2013-08-15 21:42 1100模拟Spring的 IOC 和 DI 1.BeanFactor ... -
spring任务调度
2013-07-18 17:10 994spring任务调度 1,一个job对应一个处理类(bean ... -
获取ApplicationContext对象的几种方法
2013-01-29 10:47 5511方法一:在初始化时保 ... -
Spring 如何读取properties文件
2013-01-28 16:29 1522Spring 如何读取properties文件 ------ ... -
springSecurity的登录验证
2013-01-27 20:57 2379springSecurity的登录验证 一、Springse ... -
Spring事务配置的五种方式
2013-01-11 15:10 1009Spring事务配置的五种方式 参考1:http://w ... -
ehcache缓存的使用
2013-01-11 15:10 974ehcache缓存的使用 1.ehcache缓存介绍:h ... -
在spring中如何处理oracle大字段
2013-01-10 12:45 1377在spring中如何处理oracle大字段 在spring ... -
spring事务管理
2012-12-06 14:34 642spring管理事务提交 http: ... -
spring中配置log4j
2012-11-10 16:30 1613log4j 和 slf4j slf4j和log4j用于做日志 ... -
spring每个包的详解
2012-11-09 16:53 924spring每个包的详解 spring.jar 是包含有完 ... -
当Spring管理Struts2时配置的scope="prototype"
2012-11-05 10:36 1021Spring scope="prototype&q ... -
web.xml配置加载spring
2012-11-05 10:36 983web.xml配置加载spring 第一种加载applica ... -
Spring中配置数据源
2012-11-04 20:08 1023Spring中配置数据源 ... -
DelegatingActionProxy
2012-10-31 09:53 1529DelegatingActionProxy org.spri ... -
Spring IOC实例化了哪些对象
2012-10-30 09:25 1396Spring IOC实例化了哪些对象 启动servlet容 ... -
<aop:pointcut />
2012-10-29 17:00 981<aop:config> <aop:po ... -
SSH项目解决乱码问题
2012-10-10 17:55 1177SSH解决乱码问题 第一种:利用spring的filte ...
相关推荐
spring Ioc容器配置 IOC容器数据源配置 <!-- 配置数据源 --> destroy-method="close"> <value>org.gjt.mm.mysql.Driver <value>jdbc:mysql://localhost:3306/demo <value>root ...
spring ioc容器初始化流程图 spring ioc容器依赖注入流程图 spring aop实现原理流程图
spring ioc指的是控制反转,IOC容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。交由Spring容器统一进行管理,从而实现松耦合
SpringIoc示例代码,SpringIoc示例代码,SpringIoc示例代码,SpringIoc示例代码
以注解方式模拟Spring IoC AOP,了解Spring是如何实现的.
spring ioc思维导图,让自己快速、详尽地了解spring ioc知识。
springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC...
spring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demo...
详细讲解了springioc的各种注入方式以及对应的java方式。讲解了springioc和DI的区别,以及注入特殊复杂的属性
Spring IoC加载流程讲解以及IoC思想和依赖倒置原则
SpringIOC经典Demo,绝对的经典.
Spring Ioc 注解 依赖注入
这是个模拟spring ioc的学习例子,是个java工程。有助于对aop和ioc的理解
Spring IOC基础jar包
spring ioc开发最小依赖包4个,还包含两个辅助包commons-logging.jar和log4j.jar
springioc加载流程图.pdf
spring的ioc容器详细讲解,理解springioc容器
SpringIOC和AOP实现机制模拟,来自与网络。
第一个spring IOC例子(非maven) 方法步骤: 1、下载spring包,提取core,bean,context,expression 四大基础jar http://repo.spring.io/release/org/springframework/spring/ 2、下载common-logging jar ...
Spring IoC源码深度剖析开源架构源码2021.pdf