Java 如何处理Spring应用程序配置?

Java 如何处理Spring应用程序配置?,java,spring,configuration,Java,Spring,Configuration,我有一个独立的Spring应用程序,它的设置是DMBS。我有一个想法,当应用程序启动并且应用程序从数据库读取自己的设置时,只使用一个代码(指定特定实例)。设置值然后用于在applicationContext XML文件中创建bean,稍后在bean本身中创建bean 到目前为止(开发阶段),我使用了一个属性文件,并以如下方式读取它: <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfig

我有一个独立的Spring应用程序,它的设置是DMBS。我有一个想法,当应用程序启动并且应用程序从数据库读取自己的设置时,只使用一个代码(指定特定实例)。设置值然后用于在applicationContext XML文件中创建bean,稍后在bean本身中创建bean

到目前为止(开发阶段),我使用了一个属性文件,并以如下方式读取它:

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

类路径:/taskproducer.properties

在Spring应用程序中,处理数据库设置的最佳方法是什么?

您可以创建一个从DB读取道具的configurer bean

class DbProperties extends java.util.Properties {
    DbProperties() {
        String v1 = ... // read prop from db
        setProperty("p1", "v1");
    }   
}
将其添加到Spring上下文中

...
    <context:annotation-config />
    <bean id="c1" class="DbProperties" />
    <bean id="b1" class="B1"/>

    <!--  
    <context:property-placeholder location="taskproducer.properties" />
    -->
    <context:property-placeholder properties-ref="c1"/>

你正朝着正确的方向前进。属性文件确实应该包含数据库配置属性

如果您想更进一步,可以使用特定于配置文件的属性文件,例如特定于开发的配置和特定于生产的配置

请看视频,了解关于这个主题的一些很好的说明

编辑:如果我误解了,您需要一些关于如何使用这些属性设置数据库的指导,这是一个基于配置文件属性的SpringXML配置示例

简短介绍:例如,您可以将数据源设置为:

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

希望这是有帮助的

可能重复:可能重复@user2148736,如果其中一个答案适合您的需要,那么如果您可以将该答案标记为正确+upvote:)就好了,而链接非常有用,在我看来,这个答案并不能完全解决所报道的问题。据我所知,他想要一些关于一般使用环境属性的指导。如果我误解了,我很抱歉。添加了一个配置数据库的示例。
   <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="${database.driverClassName}" />
        <property name="url" value="${database.url}" />
        <property name="username" value="${database.username}" />
        <property name="password" value="${database.password}" />
    </bean>
database.url=http://localhost:3306/mydb
database.username=sa
database.password=