- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
有一段时间没有接触spring了,感觉有点陌生了,今天总结了一下关于IoC的一些知识点,虽然是学过spring了,但是如果不经常使用,知识点是连接不起来的。所以今天我特意做了这个总结。相信对大家有一定的帮助。以便我们可以共同学习,共同进步。
Ioc的理解
1、依赖注入的概念
spring的两个核心概念:一个是控制反转IoC,也可以叫做依赖注入DI。还有一个是面向切面编程AOP。
控制反转:当某个java对象需要(依赖)另一个java对象时,不是自身直接创建依赖对象,而是由实现IoC的容器(如spring框架的IoC容器)来创建,并将它注入需要这个依赖对象的java对象中。
2、spring的依赖注入
、构造器注入
beanid=accoutDaoImplclass=cn.csdn.dao.AccoutDaoImpl
scope=”singleton”/
beanid=accoutServicImpl
class=cn.csdn.service.AccoutServicImplscope=”
!--构造器注入方式--
constructor-argref=accoutDaoImpl/
/bean
、设值(set方法)注入
beanid=accountDaoImplclass=cn.csdn.dao.AccoutDaoImpl/
beanid=accoutServicImplclass=cn.csdn.service.AccoutServicImpl
!--设值(set方法)注入--
propertyname=accountDaoImplref=accoutDaoImpl/
/bean
3、spring的容器
spring管理的基本单元是Bean,在spring的应用中,所以的组件都是一个个的Bean,它可以是任何的java对象。spring负责创建这些Bean的实例。并管理生命周期。而spring框架是通过其内置的容器来完成Bean的管理的,Bean在spring的容器中生存着,使用时只需要通过它提供的一些方法从其中获取即可
。
spring的容器有两个接口:BeanFactory和ApplicationContext这两个接口的实例被陈为spring的上下文。
ApplicationContextac=newClassFathXmlApplicationContext(app*.xml);
AccountServiceaccountService=(AccountService)ac.getBean(accountServiceImpl);
4、使用xml装配Bean
4.1、装配Bean
id:指定该Bean的唯一标识。class:指定该Bean的全限定名。
name:为该Bean指定一到多个别名。多个别名可以用“,”和“;”分割。
autowire:指定该Bean的属性的装配方式。scope:指定该Bean的存在。
init-method:指定该Bean的初始化方法。destroy-method:指定该Bean的销毁方法。
abstract:指定该Bean是否为抽象的。如果是抽象的,则spring不为它创建实例。
parent:指定该Bean的父类标志或别名。4.2、装配Bean的各种类型属性值
1.简单类型属性值的装配
beanid=bean1class=cn.csdn.domain.Bean1
propertyname=namevalue=z_xiaofei168/
propertyname=age
value22/value
/property
/bean
2.引用其他Bean的装配
beanid=bean1class=cn.csdn.domain.Bean1
...
/bean
beanid=bean2class=cn.csdn.domain.Bean2
!--引用自其他Bean的装配--
propertyname=bean1ref=bean1/
/bean
另外一种不常使用的配置方式是在property元素中嵌入一个bean元素来指定所引用的Bean.
beanid=bean1class=cn.csdn.domain.Bean1
...
/bean
beanid=bean2class=cn.csdn.domain.Bean2
!--引用自其他Bean的装配--
propertyname=bean1
beanid=bean1class=cn.csdn.domain.
文档评论(0)