Spring-将application.properties注入jar(作为Maven依赖项)

时间:2019-03-03 10:46:13

标签: java spring maven spring-boot

我想从我创建并包含在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);
        }
    }

}

1 个答案:

答案 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,因此所有功能都可以在您当前的依赖项配置下正常运行。