http://docs.spring.io/spring-boot/docs/current/reference/html/howto-properties-and-configuration.htmlによると、application-${profile}.properties を使用してさまざまな application.properties ファイルをロードできますアクティブなプロファイルを設定します。application.properties が変更されている場合、それは素晴らしいことですが、これを行う必要がある batch.properties の場合はどうでしょうか? 複数のアクティブなプロファイルがある場合はどうなりますか? 例えば:
spring.active.profile=oracle,hornetq,redis
私のプロパティは次を使用してロードされます:
<bean id="placeholderProperties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
depends-on="datasourceProperty">
<property name="locations" ref="propLocations" />
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
<property name="ignoreResourceNotFound" value="true" />
<property name="ignoreUnresolvablePlaceholders" value="true" />
<property name="order" value="1" />
</bean>
<util:list id="propLocations">
<value>classpath:batch-default.properties</value>
<value>classpath*:batch-${profile}.properties</value>
</util:list>
私は、batch-${profile}.properties がアクティブなプロファイルのいずれかを含むすべてのプロパティ ファイルを検索しようとすると想定していたので、batch-oracle.properties、batch-redis.properties、batch-hornetq.properties
見つかったものは使用し、見つからないものは無視されます。ただし、これは当てはまらないようで、${profile} が見つからないだけです。
アクティブなプロファイルが 1 つしかない場合は、${spring.active.profile} を使用するだけで問題ありませんが、アプリケーションをコンポーネント化するにつれてプロファイルを徐々に作成しているため、プロファイルを使用してプロパティをロードしたいと考えています。プロファイル固有のプロパティ プレースホルダー Bean の束。
----- 更新 ----- 「M. Deinum」のコメントに基づいて、次のことを試しました。
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes={BatchBootApplication.class})
@WebIntegrationTest(value={"spring.config.name=application,batch"})
@ActiveProfiles("hsql")
public class BatchBootApplicationTest {
@Test
public void testAppContextLoads() {
}
}
プロパティファイルが表示されます。