Ho familiarità con le opzioni di configurazione di Spring Java, compreso l'utilizzo di @Component
e @Configuration
insieme alle annotazioni @Bean
per la registrazione di bean Spring.È possibile registrare tutte le classi all'interno di un pacchetto come bean Spring
Tuttavia, quando la conversione di un progetto di dimensioni adeguate alla primavera, può essere molto alta intensità di lavoro a toccare in modo sistematico tutte le classi del progetto e l'aggiornamento con @Configuration
@Bean
s o annotare ogni classe con @Component
. Abbiamo un grande progetto Groovy da convertire e vorrei semplificare il processo.
La mia domanda: C'è una funzione fornita in primavera che consente di dire a Spring di auto-configurare tutte le classi candidate candidate valide all'interno di un pacchetto specifico?
In caso contrario, quali altre opzioni sono disponibili?
Grazie Roman. Ho una certa familiarità con la possibilità di registrare un bean in runtime manuall usando 'BeanFactoryPostProcessor' e il metodo' postProcessBeanFactory'. La tua soluzione è molto simile a questi esempi. Non avevo familiarità con l'API 'Reflections'. Proviene da: https://github.com/ronmamo/reflections? Sei a conoscenza se Reflections tiene conto di classi che non sono ancora state caricate in un classloader? Significa che scannerizza anche i file .class? – pczeus
@pczeus, sì, ho usato il riflesso di ronmamo. Inoltre ho creato il progetto github di esempio https://github.com/sandarkin/so-q37548350 che illustra l'approccio descritto. –
Informazioni su 'Riflessioni'. Sì, analizza direttamente i file .class, cosa è dimostrato da [org.reflections.Reflections # scan()] (https://github.com/ronmamo/reflections/blob/master/src/main/java/org /reflections/Reflections.java#L179) e [org.metodi reflection.Reflections # scan (java.net.URL)] (https://github.com/ronmamo/reflections/blob/master/src/main/java/org/reflections/Reflections.java#L241). –