sto facendo questo ..Primavera 3.1 Ambiente non funziona con i file di proprietà degli utenti
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(context);
xmlReader
.loadBeanDefinitions(new ClassPathResource("SpringConfig.xml"));
PropertySourcesPlaceholderConfigurer propertyHolder = new PropertySourcesPlaceholderConfigurer();
propertyHolder.setLocation(new ClassPathResource(
"SpringConfig.properties"));
context.addBeanFactoryPostProcessor(propertyHolder);
......
context.refresh();
Ora nei miei file @Configuration, le proprietà presenti nelle mie SpringConfig.properties non sono sempre raccolti se faccio questo ...
@Autowired
private Environment env
.....
env.getProperty("my.property")
ma ottengo che la proprietà se uso
@Value("${my.property}")
private String myProperty;
ho anche provato ad aggiungere paio di più linee come questa, ma inutili.
ConfigurableEnvironment env = new StandardEnvironment();
propertyHolder.setEnvironment(env);
Qualcuno sa perché le mie proprietà non sono caricate nell'ambiente? Grazie.
sono andato tramite l'API MutuablePropertySources, ma era veramente confusa, mi sento Primavera hasn 'ha reso la gestione della proprietà facile e bella. Ma tu dici che è improbabile che io voglia farlo, perché no? Se funziona, posso provarci. Il motivo per cui ho pensato che le mie proprietà si trovassero nell'ambiente è stato dopo aver letto questo articolo .. [http://www.javaworld.com/community/node/8309](http://www.javaworld.com/community/node/8309) – endless
@ user1364959 si prega di controllare http://blog.springsource.org/2011/02/15/spring-3-1-m1-unified-property-management/ - PS Sto dicendo "improbabile" perché la semplice decorazione della classe Conifugurazione con '@PropertySource (" classpath: SpringConfig.properties ")' dovrebbe essere sufficiente per aggiungere l'origine della proprietà all'ambiente. –
Come per PropertySourcesPlaceholderConfigurer - quando si registra uno nel contenitore con qualcosa come '@Bean() public static PropertySourcesPlaceholderConfigurer() {..}' recupererà automaticamente le origini delle proprietà dal contesto dell'applicazione (poiché implementa EnvironmentAware). Quindi sarà in grado di sostituire i segnaposto nelle definizioni dei bean. –