Внедрение свойства Spring в окончательный атрибут @Value - Java - PullRequest
30 голосов
/ 20 августа 2011

Простой вопрос о внедрении Spring из файла свойств для окончательного атрибута.

У меня есть файл свойств, в котором я хочу сохранить путь к файлу. Обычно, когда я использую файлы свойств, я устанавливаю атрибуты класса, используя что-то вроде этого:

private @Value("#{someProps['prop.field']}") String someAttrib ;

Тогда в моем spring.xml я бы что-то вроде:

<util:properties id="someProps"   
    location="classpath:/META-INF/properties/somePropFile.properties" />

Это работает хорошо, просто и делает код красивым и аккуратным. Но я не уверен, какой шаблон лучше всего использовать при попытке вставить значения свойств в атрибуты конечного класса?

Очевидно, что-то вроде:

private static final @Value("#{fileProps['dict.english']}") String DICT_PATH; 

не будет работать. Есть ли другой способ?

Ура!

Ответы [ 2 ]

30 голосов
/ 20 августа 2011

Единственный способ ввода значений в конечное поле - через Конструктор Инъекция .Все остальное было бы ужасным хаком на стороне Spring.

6 голосов
/ 10 декабря 2017

Если вы ищете пример вот один:

public class Test {
    private final String value;

    public Test(@Value("${some.value}") String value){
        this.value=value;
        System.out.println(this.value);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...