- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《Spring学习笔记》.doc
Spring2.5
一、依赖注入
1、创建bean的三种方式:
传统实例化Bean的方式
bean id=iocService class=serviceImpl.IocServiceBean
property name=messagevaluehello1/value/property
/bean
通过静态工厂的方式实例化bean
bean id=iocService class=serviceImpl.BeanFactory factory-method=CreateBean
property name=message value=hello2/property
/bean
通过实例工厂方式创建Bean实例
先实例化工厂类,再指定工厂类中创建bean的方法
bean id=beanFactory class=serviceImpl.BeanFactory /bean
bean id=iocService factory-bean=beanFactory factory-method=CreateBean2
property name=message value=hello3/property
/bean
2 、实例的创建:默认方式下,IocServiceBean service=(IocServiceBean)factory.getBean(iocService);得到的是静态的Bean实例(Singleton),也就是说多次getBean(“iocService”)得到的Bean是同一个。那么通过bean scope=”prototype”指定每次从容器中获得的bean是新的对象。
3、 实例化Bean的时机:默认情况下Bean在Spring容器启动的时候就实例化Bean实例。当在bean scope=”prototype”中指定Scope为prototype的时候bean是在容器初始化的时候被实例化的。也可以改变这种行为,通过bean lazy-init=true让bean延时加载,在getBean()的时候才实例化Bean。如果想改变ApplicationContext.xml中所有bean的加载时期,就在beans根元素中通过default-lazy-init=true来指定延时加载。default-lazy-init=true这个属性是不推荐使用的,因为如果bean出错了只有在Bean得到调用是才能发现错误而不是在应用启动的时候就及时发现。
4、初始化与销毁:如果要在Bean初始化后通过Bean做一些其他的初始化操作,那么就应该使用bean init-method=”XXX”/来指定。这时候无论其他方法是否调用。对于Bean中应用的资源通过在bean destory-method=”XXX”/来指定当关闭容器前(ApplicationContext.close())要调用Bean的对应方法。
5、维护各Bean之间的关系:例如在UserBean中要应用ByeBean,应该这样配置:
bean id=iocService class=serviceImpl.IocServiceBean
property name=messagevaluehello1/value/property
!--在iocService中引用ByeBean并调用其方法 name指的是iocService中的属性名,ref指的是配置的bean的id--
property name=byeBean ref=byeBean/property
/bean
bean id=byeBean class=serviceImpl.ByeBean
property name=name value=byeBean/property
/bean
使用内部Bean配置Bean之间的关联关系:使用内部Bean的方式来实现Bean与Bean关系的维护,注入其他未配置的Bean(内部Bean),使用内部Bean的话该Bean就不能被其他Bean引用了。
内部Bean配置如下:
property name=bye
bean class=serviceImpl.ByeBean
property name=name
value内部Bean/value
/property
/bean
/property
6、集合属性值的注入:配置文件如下
!--set集合属性值的注入--
property name=sets
set
valuesetValu
文档评论(0)