- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我无法在没有 Spring Boot 的情况下使 @Profile
与 maven 一起工作。在 pom.xml 中,我定义了 Maven 配置文件(“env”和“dev”也是默认的)。
不幸的是,每当我尝试使用以下方式构建项目时:
mvn clean install -Dspring.profiles.active=env
始终应用“默认”配置文件(在 Spring 中 - maven 将“env”用于 maven 目的)。我还尝试使其与 System.getProperty("spring.profiles.active") 和 System.getenv("spring.profiles.active") 一起使用,但是那些总是返回 null。我认为还值得一提的是,这是非 Web 应用程序。
Bean(读取正确的属性):
@Bean
@Profile({"default"})
public static PropertySourcesPlaceholderConfigurer defaultProperties() {
return getPropertySourcesPlaceholderConfigurer("db.yml");
}
@Bean
@Profile({"env"})
public static PropertySourcesPlaceholderConfigurer envProperties() {
return getPropertySourcesPlaceholderConfigurer("db-env.yml");
}
@Bean
@Profile({"test"})
public static PropertySourcesPlaceholderConfigurer devProperties() {
return getPropertySourcesPlaceholderConfigurer("db-test.yml");
}
private static PropertySourcesPlaceholderConfigurer getPropertySourcesPlaceholderConfigurer(String resource) {
PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer = new PropertySourcesPlaceholderConfigurer();
YamlPropertiesFactoryBean yaml = new YamlPropertiesFactoryBean();
yaml.setResources(new ClassPathResource(resource));
final Properties object = yaml.getObject();
if (object != null) {
propertySourcesPlaceholderConfigurer.setProperties(object);
}
return propertySourcesPlaceholderConfigurer;
}
Pom.xml:
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
<property>
<name>spring.profiles.active</name>
<value>dev</value>
</property>
</activation>
</profile>
<profile>
<id>env</id>
<activation>
<property>
<name>spring.profiles.active</name>
<value>env</value>
</property>
</activation>
</profile>
</profiles>
最佳答案
Spring 配置文件用于运行您的应用程序,而不是构建。执行应用程序时传递 -Dspring.profiles.active=env
。在您的示例中,您正在执行 mvn install
,但它不会执行您的应用程序。
关于java - @Profile 在没有 Spring Boot 的情况下不起作用(-Dspring.profiles.active with maven),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50002648/
我能够在我的 Spring Boot 应用程序中成功使用 -Dspring.config.name 和 -Dspring.config.location。现在想使用相同的 -Dspring.confi
我试图了解 Spring 中 -Drun.profiles 和 -Dspring.profiles.active 之间的区别。 另一个answer in SO并没有过多解释其中的差异。 在我的测试中,
编辑:我尝试在standalone.conf.bat中添加set "JAVA_OPTS=%JAVA_OPTS% -Dspring.profiles.active=test",但这不起作用。就好像它被忽
我在资源文件夹中有 application.property 文件,其中包含我项目中的一些属性。我试图通过命令行 dspring.config.locationt=//external file lo
我无法在没有 Spring Boot 的情况下使 @Profile 与 maven 一起工作。在 pom.xml 中,我定义了 Maven 配置文件(“env”和“dev”也是默认的)。 不幸的是,每
我有一个 Spring Boot Gradle 应用程序。当我运行 gradle 构建时,我想在不同的环境中运行。 例如:./gradlew clean build -Dapp.env=QA1。在测试
java -Dspring.profiles.active -jar xxx.jar 和有什么区别和java -jar xxx.jar --spring.profiles.active 我知道 -D
我是一名优秀的程序员,十分优秀!