如何创建一个可以在setter中配置的Spring bean以及构造函数依赖?

时间:2016-12-16 14:25:34

标签: java spring

这是一个在采访中提出的问题。 问题是bean有一些我们在.xml文件中配置的属性,然后我们注入它但是让我们说不知道不同Beans的属性或属性会有所不同。那么我们如何制作该bean以便我们能够在运行时配置它?

1 个答案:

答案 0 :(得分:0)

我认为将bean值外部化,例如:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <value>classpath:com/foo/jdbc.properties</value>
    </property>
</bean>

<bean id="dataSource" destroy-method="close"
      class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="${jdbc.driverClassName}"/>
    <property name="url" value="${jdbc.url}"/>
    <property name="username" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
</bean>

然后按照包含jdbc.properties文件的示例:

jdbc.driverClassName=org.hsqldb.jdbcDriver
jdbc.url=jdbc:hsqldb:hsql://production:9002
jdbc.username=sa
jdbc.password=root

可以在运行时配置属性