Spring Value: почему некорректно видит переменные?

183
02 июня 2018, 18:20

Я вынес все данные в properties, например, с такими полями:

email.content.charset=utf-8

Я создал отдельный класс с пропертями, ResourcesProperties, в котором у меня есть это поле и геттер:

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class ResourcesProperties {
    @Value("${email.content.charset}")
    private String emailCharset;
    public String getEmailCharset() {
        return emailCharset;
    }
}

Проперти-файл сканируется спрингом:

@PropertySource({"classpath:/properties/mail.properties"})

Я автовайрю класс проперти в нужный мне класс:

@Autowired
private ResourcesProperties properties;

и вывожу на экран:

System.out.println(properties.getEmailCharset());

Результат:

${email.content.charset}

Делаю то же самое через Environment:

System.out.println(environment.getProperty("email.content.charset"));

Результат:

utf-8

Подскажите, что я делаю не так?

Answer 1

Добавьте в ваш класс ResourcesProperties след код.

@Bean
public static PropertySourcesPlaceholderConfigurer propertyConf() {
    return new PropertySourcesPlaceholderConfigurer();
}

Если не инициализировать PropertySourcesPlaceholderConfigurer то считыватся через аннотацию property не будет

READ ALSO
Привязать jscrollbar

Привязать jscrollbar

Как привязать jscrollbar к панели в визуальном редакторе intellij? Находил только примеры с добавлением в коде, нужно именно в редакторе

183
Как выводить базу данных через ListView Java [закрыт]

Как выводить базу данных через ListView Java [закрыт]

Есть база данных, созданная с помощью SQL, в ней есть таблица с четырьмя полями, нужно вывести их на экран активности используя ListView

224
Как узнать длину или ключ последнего элемента в ветке Firebase

Как узнать длину или ключ последнего элемента в ветке Firebase

Как узнать длину или ключ последнего элемента в ветке Firebase? В примере это "4"В приложении они добавляются по порядку, поэтому нужно узнать...

230
Intent.PutExtra на несколько Activity

Intent.PutExtra на несколько Activity

есть несколько активити, в том числе и settings_activityВ settings_activity есть несколько кнопок (20% (btSound20), 40% (btnSound40), 60% (btnSoun60), 80% (btnSound80), 100% (btnSound100)), эти кнопки...

240