- 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配置文件中bean的id和name是纷纷表示出了迷惑.doc
spring中bean的id和name奇技淫巧
昨晚大家在说到spring配置文件中bean的id和name是纷纷表示出了迷惑。作为程序员有惑就得解惑,为此俺baidu了一把,google了一下找到相关同仁的文章,加上实践了一把,特在此涂鸦一把。
1、name与id之间的关系,name中文意思是名字,在这里就是一个bean定义的别名,默认等于id值。
2、id命名必须满足XML的命名规范,因为id其实是XML中就做了限定的。总结起来就相当于一个Java变量的命名:不能以数字,符号打头,不能有空格,如123,?ad,”ab “等都是不规范的,Spring在初始化时就会报错,诸如:org.xml.sax.SAXParseException:?Attribute?value?”?ab”?of?type?ID?must?be?a?name.
3、name属性则没有这些限定,你可以使用几乎任何的名称,如?ab,123等,但不能带空格,如”a b”,” abc”,,这时,虽然初始化时不会报错,但在getBean()则会报出诸如以下的错误:org.springframework.beans.factory.NoSuchBeanDefinitionException:?No?bean?named?’a?b’?is?defined
4、在spring同一个上下文中id,name只能有一个,但是同一个id可以用多个别名,比如bean id=”a” name=”a1,a2,a3″ class=”com.shaxiaozi.A”/,a1,a2,a3指向的是同一个对象[前提是单例的情况下]。如果不是单例则创建了和name数量相等的bean实体。
两个id相同的bean,否则在初始化时即会报错,如:org.xml.sax.SAXParseException:?Attribute?value?”aa”?of?type?ID?must?be?unique?within?the?document.
5、如果id和name都没有指定,则用类全名作为name,如bean,则你可以通过?getBean(“com.shaxiaozi.A”)返回该实例。
6、如果存在多个id和name都没有指定,且实例类都一样的bean,如:bean?class=”com.stamen.BeanLifeCycleImpl”/bean?class=”com.stamen.BeanLifeCycleImpl”/bean?class=”com.stamen.BeanLifeCycleImpl”/
调用方式依次:getBean(“com.stamen.BeanLifeCycleImpl”)getBean(“com.stamen.BeanLifeCycleImpl#1″)getBean(“com.stamen.BeanLifeCycleImpl#2″)
总结:奇技淫巧,只为增广见识,id已经可以解决80%的问题了,name几乎没有出场的机会。
Tags: id, name, springFiled in java with 0 Comments
Spring autowire
在xml配置文件中,autowire有5种类型,可以在bean/元素中使用autowire属性指定:[xml]
? 模式????????????????????????说明 ??
? ?no???????????????????????不使用自动装配,必须通过ref元素指定依赖,默认设置。 ??
? byName????????????根据属性名自动装配。此选项将检查容器并根据名字查找与???????????????? ??
? ????????????????????????????? 属性完全一致的bean,并将其与属性自动装配。???比如B需要注入A,则B中必须存在A在容器中name相同的实体)
? byType???????????????如果容器中存在一个与指定属性类型相同的bean,那么将与 ??
? ?????????????????????????????? 该属性自动装配;如果存在多个该类型bean,那么抛出异 ??
? ????????????????????????????? ?常,并指出不能使用byType方式进行自动装配;如果没有找 ??
? ?????????????????????????????? 到相匹配的bean,则什么事都不发生,也可以通过设置 ??
? ?????????????????????????????? dependency-check=”objects”让Spring抛出异常。 ??
? constructor
文档评论(0)