我想从我创建并包含在pom中的jar中访问我的application.properties文件。
因此在父项目中-
<dependency>
<groupId>some.group.name</groupId>
<artifactId>some-jar-name</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
在jar中,我有一个需要从父application.properties
文件中获取值的类。
我已经通过设置spring.profiles.active
并打印JVM args来尝试使用spring.profiles.active=test
,但是没有注入值。
在罐子里-
public class PropertiesRepository {
//get application.properties
public PropertiesRepository(String appName, String instance) {
RuntimeMXBean runtimeMxBean = ManagementFactory.getRuntimeMXBean();
List<String> arguments = runtimeMxBean.getInputArguments();
for (Iterator iterator = arguments.iterator(); iterator.hasNext();) {
String param = (String) iterator.next();
System.out.println("Runtime arg=" + param);
}
}
}
答案 0 :(得分:0)
由于您的文件将位于 classpath 上,因此请将@Configuration
类与@PropertySource
一起使用。
@Configuration
@PropertySource("classpath:your-file-name.properties")
public class PropertiesConfiguration { }
如果您的文件名是标准的application.properties
,您甚至不需要这样做,它将自动被选中,您将可以通过以下方式访问它们:
@Value("${your-property}")
或
Environment#getProperty("your-property")
鉴于您使用的是Spring Boot
,因此所有功能都可以在您当前的依赖项配置下正常运行。