spring配置中property作为bean的属性。也就是指一个类中的成员。同时这个成员必须有get和set方法。
property的一般用法:
<bean id="playerDataManager" class="com.cp.game.PlayerDataManager" init-method="init" scope="singleton">
<property name="sleepTime" value="${app.dispatcher.sleepTime}" /> //从外部的property文件中用el表达式获取值
<property name="sleepTime" value="333" /> //直接在赋值
<property name="playerDao" ref="playerDao" /> 引用其他bean对象。 ref的值是其他bean的id名
//内部嵌套bean的用法
<property name="messageExecutor"> <bean class="com.cp.netty.domain.FiexThreadPoolExecutor" destroy-method="shutdown"> <constructor-arg value="${app.dispatcher.pool.corePoolSize}" /> <constructor-arg value="${app.dispatcher.pool.maximumPoolSize}" /> <constructor-arg value="${app.dispatcher.pool.keepAliveSecond}" /> </bean> </property>
有多个值的property配置(相当于集合)
<property name="locations"> <list> <value>config/settings.properties</value> <value>classpath:c3p0.properties</value> <value>classpath:mchange-log.properties</value> <value>classpath:mchange-commons.properties</value> </list> </property>
</bean>
进阶问题:
<property name="a" ref="b" />和<property name="a" > <ref bean="b" /> </property>这两种方式有啥不一样的?
spring的配置文件可能会有多个<property name="a" ref="b" />就是找当前配置文件里的bean 也就是b<ref bean ="b"/> 是寻找全局中的 bean;就是说<ref 可以查找别的XML配置文件中的bean。这样是可以找到其他配置文件定义id为b的bean的
也可以想到 在工作中一个项目spring的配置文件 肯定有好几个用<ref bean="b" /> 来关联指定在其他xml文件中的bean很方便而且不容易出错 其实<ref标签里 有3种属性 <ref bean=""/>,<ref local=""/>,<ref parent=""/> 而第一种不用说了 第二种就是关联当前xml的bean 也就等同于<property name="a" ref="b" />这种写法 而第三种就是 用于指定其依赖的父 JavaBean 定义。
时间: 2024-10-19 12:30:11