如何在spring引导应用程序中读取静态字段的属性?

如何在spring引导应用程序中读取静态字段的属性?,spring,spring-boot,Spring,Spring Boot,我想使用spring boot转换以下代码段 String message = propertiesService.getProperty("app.directory.errorcode." + errorNumber); 其中propertiesService用于读取应用程序.properties 我如何在Spring boot中阅读此内容,因为我之前声明了这些属性 在声明类变量的位置使用static关键字? @Value("${app.directory.errorcode.fatal}

我想使用spring boot转换以下代码段

String message = propertiesService.getProperty("app.directory.errorcode." + errorNumber);
其中
propertiesService
用于读取
应用程序.properties

我如何在Spring boot中阅读此内容,因为我之前声明了这些属性 在声明类变量的位置使用static关键字?

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

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

您可以使用包中的类
环境
实现这一点

例如:

@SpringBootApplication
public class Example {

    // autowire the Environment
    @Autowired
    private Environment environment;

    private static String fatalCode; 

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

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

}
我希望这能对你有所帮助


谢谢:)

您可以使用包中的类
环境
实现这一点

例如:

@SpringBootApplication
public class Example {

    // autowire the Environment
    @Autowired
    private Environment environment;

    private static String fatalCode; 

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

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

}
我希望这能对你有所帮助


谢谢:)

还有另一种方法可以做同样的事情

在应用程序属性中

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

@Value("#{${app.fatcodes}}")
private Map<String, String> fatCodes;
@Value(“#{${app.fatcodes}”)
私有地图编码;

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

在应用程序属性中

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

@Value("#{${app.fatcodes}}")
private Map<String, String> fatCodes;
@Value(“#{${app.fatcodes}”)
私有地图编码;

谢谢你,安妮什,我是按照你的建议用环境财产做的。但我认为这个解决方案是读取URL和其他环境变量的标准,我可以使用它吗?或者使用它来读取特定于应用程序的内容是最佳实践吗?@SadiaH,这取决于具体情况。你可以用它。没有害处。当您希望读取基于不同属性的值时,将使用Environment类。但我认为这是动态属性阅读的最佳解决方案。谢谢Anish,我能够按照您的建议使用环境属性。但我认为这个解决方案是读取URL和其他环境变量的标准,我可以使用它吗?或者使用它来读取特定于应用程序的内容是最佳实践吗?@SadiaH,这取决于具体情况。你可以用它。没有害处。当您希望读取基于不同属性的值时,将使用Environment类。但在我看来,这是动态属性读取的最佳解决方案。