Как прочитать свойство статического поля в приложении с весенней загрузкой? - PullRequest
1 голос
/ 03 октября 2019

Я хочу преобразовать следующий фрагмент кода с помощью весенней загрузки.

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

, где propertiesService используется для чтения application.properties.

Как мне прочитать это при загрузке Spring, так как я ранее объявил свойства, используя ключевое слово static гдепеременные класса объявлены?

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

Мне нужно сгенерировать имя свойства и прочитать его динамически.

Ответы [ 2 ]

0 голосов
/ 03 октября 2019

Есть еще один способ сделать то же самое, как это

В application.properties

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

Java-код

@Value("#{${app.fatcodes}}")
private Map<String, String> fatCodes;
0 голосов
/ 03 октября 2019

Этого можно добиться, используя класс 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);
    }

}

Iнадеюсь, что это может помочь вам.

Спасибо:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...