4

私のapplicationcontext.xmlには、これがあります:

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

ここで私は自分のデータベースに接続しています:

              ApplicationContext ctx = new ClassPathXmlApplicationContext(
        "applicationContext.xml");
        MySQLRdbHelper rdbHelper = (MySQLRdbHelper)  
                    ctx.getBean("ManagerSupervisor");

必要なのは、applicationcontext.xml からパスワード「1234」を読み取らず、ローカル ドライブのプロパティ ファイルから読み取らないことです。これは異なるマシンで実行され、すべてのマシンが異なるパスワードを持っているためです。

これを達成できますか。

ありがとう

4

3 に答える 3

5

はい、できます。その鍵となるのは SpringsPropertyPlaceholderConfigurerです。

たとえば、database.propertiesパスワードを含む というファイル システムにファイルを作成します (このファイルには、ユーザー名、JDBC URL などの設定を追加することもできます)。

jdbc.password=1234

次に、PropertyPlaceholderConfigurerBean を宣言し、それをdatabase.propertiesファイルにポイントする必要があります。

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location">
        <value>path/to/database.properties</value>
    </property>
</bean>

パスは、接頭辞が付いていない限り、クラスパス リソースとして解釈されることに注意してくださいfile:

最後に、Beanの構成を置き換えます。dataSource

<property name="password" value="1234" />

<property name="password" value="${jdbc.password}" />
于 2013-04-19T06:30:51.260 に答える