如何在Spring Boot应用程序中的静态字段上读取属性?

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

标签: spring spring-boot

我想使用Spring Boot转换以下代码段。

String message = propertiesService.getProperty("app.directory.errorcode." + errorNumber);

其中propertiesService用于读取application.properties

如何在Spring Boot中阅读此内容,因为我之前已经声明了属性 使用静态关键字声明类变量的地方?

@Value("${app.directory.errorcode.fatal}")
private static String fatalCode;

我需要生成属性名称并动态读取它。

2 个答案:

答案 0 :(得分:0)

您可以使用课程中的课程 Environment org.springframework.core.env

示例:

@SpringBootApplication
public class Example {

    // autowire the Environment
    @Autowired
    private Environment environment;

    private static String fatalCode; 

    public static someMethod(String errorNumber) {
      fatalCode = environment.getProperty("app.directory.errorcode." + errorNumber);
    }

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

}

希望对您有所帮助。

谢谢:)

答案 1 :(得分:0)

还有另一种方法可以完成类似的事情

application.properties

app.fatcodes={"fatcodes1":"1", "fatcodes2":"2", "fatcodes3":"3"}

Java代码

@Value("#{${app.fatcodes}}")
private Map<String, String> fatCodes;