Где Spring хранит строки, загруженные из файлов * .properties? - PullRequest
0 голосов
/ 23 января 2020

У меня есть два файла:

application.properties

// ... stuffs ...
spring.profiles.active=some_id

application-some_id.properties

// ... stuffs ...
some.string=value

Я хочу получить значение свойства "some.string" из моего java кода, например:

Utility. java

public final class Utility {

   public final static String SOME_STRING_VALUE = <Something>.getProperty("some.string");

   private Utility() {
   }

}

Что я должен написать вместо <Something>? Я знаю, что работая с Spring, я должен использовать материалы Spring, такие как @Value, @Component, et c ... и 99% проекта - это то же самое. Я хотел бы иметь только это исключение.

1 Ответ

0 голосов
/ 23 января 2020

Попробуйте использовать API среды:

@Autowired
private Environment env;
.
.
env.getProperty("some.string");

Обновление: чтобы иметь возможность использовать в статическом c контексте, вы можете попробовать использовать ленивый экземпляр, как следует (но в этом случае вы должны удалить final accessor):

final class Utility {

    @Autowired
    private Environment env;

    private static String SOME_STRING_VALUE;

    public static String getStringValue() {
        if (SOME_STRING_VALUE == null) {
            SOME_STRING_VALUE = env.getProperty("some.string");
        }
            return SOME_STRING_VALUE;
        }

    private Utility() {}

}

Надеюсь, это поможет

...