我遇到的问题是:通过 spring.profiles.active=development 在 application.properties 中定义的活动配置文件。但是,当我将 Spring 的环境变量用于 getActiveProfiles() 时,返回的只是一个空字符串数组。该应用程序启动时显示“以下配置文件处于活动状态:开发”。感谢对此的任何帮助。下面是一个简单的类,用于检查我是否可以检索配置文件。
已经尝试自动装配环境变量无济于事。此类标有@Component 并实现了EnvirontmentAware。
注意:我已经查看了几乎所有关于此问题的 SO 线程,所以请不要将其标记为欺骗,因为没有一个解决了我的问题。
@Override
public void setEnvironment(Environment environment) {
this.environment = environment;
System.out.println(environment.getActiveProfiles()[0]);
}
当然,我们得到一个索引越界异常。
application.properties(一些由于敏感信息而省略)
spring.profiles.active=development
主要类别:
@SpringBootApplication
@PropertySource("classpath:application.properties")
@ComponentScan("uk.co.demo*")
@Configuration
public class EbecsIntegrationAdapterApplication {
@Value("${activemq.broker_url}") private String amqBrokerUrl;
@Value("${activemq.username}") private String amqUsername;
@Value("${activemq.password}") private String amqPassword;
@Value("${server.ssl.key-store}") private String amqKeystore;
@Value("${server.ssl.key-store-password}") private String
amqKeyStorePassword;
@Bean
public ConnectionFactory activemqConnectionFactory() throws Exception {
ActiveMQSslConnectionFactory connectionFactory = new
ActiveMQSslConnectionFactory();
connectionFactory.setBrokerURL(this.amqBrokerUrl + "?
jms.prefetchPolicy.all=1");
connectionFactory.setUserName(this.amqUsername);
connectionFactory.setPassword(this.amqPassword);
connectionFactory.setTrustAllPackages(true);
connectionFactory.setTrustStore(this.amqKeystore);
connectionFactory.setTrustStorePassword(this.amqKeyStorePassword);
connectionFactory.setKeyStore(this.amqKeystore);
connectionFactory.setKeyStorePassword(this.amqKeyStorePassword);
return new PooledConnectionFactory(connectionFactory);
}
冉冉说
相关分类