Mi chiedo quale sarebbe il posto migliore per un'applicazione Spring Boot per registrare ulteriori bean. Ho una classe Main annotata con @SpringBootApplication
e i bean definiti in quella classe vengono rilevati. Ma quando li metto in un'altra classe sembra che non vengano registrati.Dove mettere @Bean in Spring Boot?
Durante la lettura della documentazione ho avuto l'idea che il @SpringBootApplication
cercasse implicitamente classi con annotazioni @Bean
in esse.
Quindi le mie opzioni sono ora:
mettere tutti
@Bean
fagioli annotato nella mia classe principale@SpringBootApplication public class MyApplication { @Bean public Filter AuthenticationFilter() { return new AuthenticationFilter(); } public static void main(String[] args) { SpringApplication.run(MyApplication.class, args); } }
Crea una classe di configurazione e annotare che con
@Configuration
@Configuration public class MyConfiguration { @Bean public Filter AuthenticationFilter() { return new AuthenticationFilter(); } }
C'è un modo migliore per farlo?
Vedi i [documenti API di '@ Bean'] (http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context /annotation/Bean.html). Normalmente metterei quei metodi in una classe annotata con '@ Configuration'. Perché pensi che non sia una buona idea? I documenti parlano anche di una modalità "lite". – Jesper
2. è il modo per farlo. '@ SpringBootApplication' è un'annotazione di convenienza che include' @ Configuration', quindi se non hai molti bean, puoi metterli tutti lì dentro. Se hai molti bean e/o sono in qualche modo raggruppati in modo logico, puoi aggiungere ulteriori classi '@ Configuration'. Ma non esiste un modo "migliore" per farlo. –