3

Если у меня есть PropertyPlaceholderConfigurer, идущий через XML-файл, можно ли использовать мою Spring @Configuration в качестве источника свойств для всех компонентов, которые он обрабатывает?Свойства с Spring @Configuration

@Configuration 
@ComponentScan(value = { "x.y.z }) 
@ImportResource({ "classpath:remote-properties/applicationContext.xml",}) 
public class CoreConfiguration implements TransactionManagementConfigurer { 

    @Resource(name = "com.c.h.c.PropertyPlaceholderConfigurer") 
    public PropertyPlaceholderConfigurer pp; 

    @Bean 
    public PropertyPlaceholderConfigurer propertiesFactoryBean() { 
     return pp; 
    } 
} 

С выше, он никогда не попадает мою точку останова на pp. Если я удалю @Bean и метод, я могу проверить, что заполнено pp. Итак, как я могу зарегистрировать его с помощью конфигурации?

+0

Вы просмотрели http://forum.springsource.org/showthread.php?107194-PropertyPlaceholderConfigurer-and-javconfig –

+0

@Rob Я не могу использовать файл свойств напрямую. Я должен либо использовать компонент PropertyPlaceholderConfigurer из этого содержимого приложения, либо загрузить файл свойств, у которого есть URL второго файла свойств, а затем загрузить этот файл свойств. Я знаю, это звучит смешно, но это команда, на которой я решаю проблему с несколькими проблемами. – AHungerArtist

+0

@Rob Более того, мне нужны свойства не только в классе «@Configuration», но доступны для использования, когда «@ComponentScan» делает свою магию в аннотированных классах «@Service» (так что аннотации «@Value» будут правильно заселяйтесь). – AHungerArtist

ответ

3

Я чувствую себя довольно глупо. Мне не хватало правой фигурной фигурной скобки на одной из моих аннотаций @Value. Я не могу себе представить, сколько раз я смотрел на это и пропустил его.

Итак, имея PropertyPlaceHolderConfigurer в контексте приложения, вы, @ImportResource, будете работать без проблем. Вам даже не нужно вводить его как @Resource.

Смежные вопросы