繁体   English   中英

创建参数化的Spring bean配置

[英]Creating parameterized Spring bean configuration

是否可以有一个参数化的bean模板,在其中我们只需填写占位符或传递参数来告诉要引用的bean或要设置的值?

<bean id='baseBean' abstract='true' argument='arg1'>
    <property...>
    .
    .
    <property name="tableName" value='arg1'>
</bean>
<bean id="derived1" parent='baseBean(table1)' >
    .
    .
</bean>
<bean id="derived2" parent='baseBean(table2)' >

</bean>

您不能通过这种方式将参数传递给类,而在您要为其创建Bean的类中将其用作表名的参数名。

<bean id="ds"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://localhost/SBS_SL_MERGE" />
    <property name="username" value="root" />
    <property name="password" value="" />
</bean>

在上面的示例中,DriverManagerDataSource类具有名为driverClassName,url,username,password的变量,您只需将这些参数的值传递给该类的参数即可。...

如果要引用此bean,则只需传递bean id即可引用。

<bean id="transactionManager" 
      class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
      <property name="dataSource"  ref="ds" /> 

   </bean>

现在,在上述情况下,DataSourceTransactionManager中有一个名为dataSource的变量,该变量是具有所有默认设置值的DataSourceTransactionManager的必需对象。

您可以使用PropertyPlaceholderConfigurer并在属性文件中定义bean ID,然后从那里控制它。就像我们用来配置数据库属性一样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM