3

Spring java- Quartz スケジュール型アプリケーション

context:property-placeholder の代わりに throw プログラム パラメータを動的に渡された .property ファイルをロードしたいのですが、どうすればこのタスクを達成できますか?

次のコードで示すように、メインのJavaファイルからSpringコンテキストを手動でロードして更新しています。

SpringUtil_1.loadSpringConfig();
rootContext = new ClassPathXmlApplicationContext();
rootContext.setConfigLocation("abc-configuration.xml");
rootContext.refresh();

春の構成では、コードから取得したい次のようなコンテキスト プロパティ プレース ホルダーがあります。

<context:property-placeholder location="classpath:lnRuntime.properties"/>

私は次のようにスプリングELを使用してスプリングコンテキストとJavaファイルでプレースホルダーを使用しています

<bean id="dataSource" 
class="org.springframework.jdbc.datasource.SingleConnectionDataSource">
        <property name="driverClassName" value="net.sourceforge.jtds.jdbcx.JtdsDataSource"/>
        <property name="url" value="${dataSource.url}"/>
    </bean>

Javaでは、次のようにアクセスしています

private @Value("${dz.host}") String dzHost;
4

1 に答える 1

5

見つかった答え

@Bean
public static PropertySourcesPlaceholderConfigurer properties(){
  PropertySourcesPlaceholderConfigurer pspc =
   new PropertySourcesPlaceholderConfigurer();
  Resource[] resources = new ClassPathResource[ ]
   { new ClassPathResource( "foo.properties" ) };
  pspc.setLocations( resources );
  //pspc.setIgnoreUnresolvablePlaceholders( true );
  return pspc;
}

リソースhttp://www.baeldung.com/2012/02/06/properties-with-spring/#byhandnew

于 2012-12-05T19:23:48.263 に答える