在SpringBoot中指定@PropertySource中的value属性

时间:2018-01-05 06:38:28

标签: spring-boot

SETUP

我有一个jar(比如它的A),它通过var ns =['Kyle', 'Mods',1,2,3]; console.log(ns); 添加另一个jar(比如它的B)作为它的依赖。 Jar A来自Spring Boot Application。

问题

  

我在jar B中的路径src / conf /下有属性文件。我试图在jar B中的一个java文件中设置@PropertySource的value属性中的路径值。当尝试这样做时,它引用了jar A的src / conf。我怎样才能实现这一点。

Maven

此处@PropertySource( value = { "file:${spring.profiles.path}other-services-dev.properties" })从jar A

的部署脚本中获取其值

1 个答案:

答案 0 :(得分:1)

使用“classpath:”而不是file:

将属性文件移动到src/main/resources,使其成为jar B的资源。然后,您可以像这样引用文件:@PropertySource("classpath:/other-services-dev.properties")

更好的封装方法是在jar B中定义一个带有注释@PropertySource("classpath:/other-services-dev.properties")的类,并通过getter公开属性。然后jar A可以简单地让这个类注入。

在罐子里B:

 @PropertySource("classpath:/other-services-dev.properties")
 @Service
 class BProperties
   @Value("${setting1}")
   private String setting1;

   public String getSetting1() {
     return setting1;
   }
 }

在罐子里

@Service
class SomeService {
  @Autowired
  private BProperties properties;
}