Esiste un modo per caricare una classe contrassegnata con @ConfigurationProperties
senza utilizzare direttamente un contesto di primavera? Fondamentalmente voglio riutilizzare tutta la logica intelligente che Spring fa, ma per un bean che istanzia manualmente manualmente al di fuori del ciclo di vita di Spring.Posso caricare manualmente @ConfigurationProperties senza Spring AppContext?
Ho un fagiolo che carica felicemente in primavera (avvio) e posso iniettare questo nei miei altri fagioli di servizio:
@ConfigurationProperties(prefix="my")
public class MySettings {
String property1;
File property2;
}
Vedere la Docco primavera per ulteriori informazioni http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-external-config-command-line-args
Ma ora ho bisogno per accedere a questo bean da una classe creata all'esterno di Spring (da Hibernate). La classe viene creata così presto nel processo di avvio dell'app che Spring Boot non ha ancora reso disponibile il contesto dell'applicazione tramite i metodi di ricerca di lookup classici o riferimenti statici roll-my-own.
Così, invece voglio fare qualcosa di simile:
MySettings mySettings = new MySettings();
SpringPropertyLoadingMagicClass loader = new SpringPropertyLoadingMagicClass();
loader.populatePropertyValues(mySettings);
E hanno MySettings finiscono con tutti i suoi valori caricati, dalla riga di comando, le proprietà del sistema, app.properties, ecc C'è qualche classe in Spring che fa qualcosa del genere o è anche tutto intrecciato con il contesto dell'applicazione?
Ovviamente potrei semplicemente caricare il file delle Proprietà da solo, ma voglio davvero mantenere la logica di Spring Boot usando le variabili della riga di comando (ad esempio --my.property1 = xxx), o le variabili di sistema o application.properties o anche a il file yaml, così come la sua logica attorno al binding rilassato e alla conversione del tipo (ad esempio property2 è un file) in modo che tutto funzioni esattamente come quando è usato nel contesto Spring.
Possibile o sogno da pipa?
Grazie per il vostro aiuto!
Grazie per la tua risposta dettagliata! Mi aiuta molto. – Rib47