属性文件中的Placesholders不能替代环境变量

时间:2017-05-17 09:03:11

标签: spring spring-boot

我有一个带有占位符的application.properties文件的spring boot应用程序:

tommy.messagebroker.provider=activemq
tommy.messagebroker.tcpaddress=${JMS_HOST}
tommy.messagebroker.port=${JMS_PORT}

当我设置这些环境变量并运行应用程序时,它不会将这些占位符替换为env变量的实际值...

这是我的主要应用程序类:

@SpringBootApplication
@ComponentScan(basePackages = {"com.tommy.server"})
public class tommyApplication extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(AuditManagerApplication.class, args);
    }

}

在我的pom.xml中:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.3.RELEASE</version>
</parent>

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>1.5.3.RELEASE</version> 
 </dependency>

谁知道如何让这种替代发生?

1 个答案:

答案 0 :(得分:0)

如果要在本地系统中设置这些环境变量,并且使用的是eclipse IDE。请关闭Eclipse并重新打开它,包括您的项目。由于某种原因,除非你关闭ide并重新打开它,否则eclipse不会获取环境变量。