spring - property和constructor-arg的使用

时间:2024-11-19 19:41:56

1、依赖注入的方式: constructor-arg:通过构造函数注入。 property:通过setxx方法注入。

2、设值注入,使用property子标签:<beanid="renderer"class="com.apress.prospring.ch2.StandardOutMessageRenderer"> <propertyname="messageProvider"> <reflocal="provider"/> </property> </bean>

3、构造子注入,使用constructor-arg子标签:<beanid="provider"class="com.apress.prospring.ch4.ConfigurableMessageProvider"> <constructor-arg> <value>Thisisaconfigurablemessage</value> </constructor-arg> </bean>

4、使用constructor-arg标签的index属性,对应于构造函数的多个参数,index属性的值从0开始。 <beanid="provider" lass="com.apress.prospring.ch4.ConfigurableMessageProvider"> <constructor-argindex="0"> <value>firstparameter</value> </constructor-arg> <constructor-argindex="1"> <value>secondparameter</value> </constructor-arg> </bean>

5、使用constructor-arg的type属性,避免构造子冲突:<beanid="constructorConfusion"class="com.apress.prospring.ch4.ConstructorConfusion"> <constructor-argtype="int"> <value>90</value> </constructor-arg> </bean> publicclassConstructorConfusion{ publicConstructorConfusion(StringsomeValue){ System.out.println("ConstructorConfusion(String)called");}publicConstructorConfusion(intsomeValue){System.out.println("ConstructorConfusion(int)called");}}

6、注入集合属性,使用list,map,set和props标签,分别对应List,Map,Set和Properties:<beanid="injectCollection"class="com.apress.prospring.ch4.CollectionInjection"><propertyname="map"><map><entrykey="someValue"><value>HelloWorld!</value></entry><entrykey="someBean"><reflocal="oracle"/></entry></map></property><propertyname="props"><props><propkey="firstName">Rob</prop><propkey="secondName">Harrop</prop></props></property><propertyname="set"><set><value>HelloWorld!</value><reflocal="oracle"/></set></property><propertyname="list"><list><value>HelloWorld!</value><reflocal="oracle"/></list></property></bean>

© 手抄报圈