Мне интересно, какое лучшее место для приложения Spring Boot зарегистрировать дополнительные бобы. У меня есть класс Main, который аннотируется с @SpringBootApplication
, и боны, определенные в этом классе, подбираются. Но когда я помещаю эти бобы в другой класс, кажется, что они не регистрируются.Где положить @Bean весной Boot?
При чтении документации я понял, что @SpringBootApplication
будет неявно искать классы, в которых есть аннотации @Bean
.
Так что мои варианты теперь:
Поместите все
@Bean
аннотированный боб в моем главном классе@SpringBootApplication public class MyApplication { @Bean public Filter AuthenticationFilter() { return new AuthenticationFilter(); } public static void main(String[] args) { SpringApplication.run(MyApplication.class, args); } }
Создать класс конфигурации и аннотирования, что с
@Configuration
@Configuration public class MyConfiguration { @Bean public Filter AuthenticationFilter() { return new AuthenticationFilter(); } }
Есть ли лучший способ сделать это?
См. [API-документы '@ Bean'] (http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context /annotation/Bean.html). Обычно вы помещаете эти методы в класс, который аннотируется с помощью '@ Configuration'. Почему вы думаете, что это не очень хорошая идея? В документах также говорится о режиме «Lite». – Jesper
2. это способ для этого. '@ SpringBootApplication' - удобная аннотация, включающая' @ Configuration', поэтому, если у вас нет большого количества бобов, вы можете разместить их там. Если у вас много бобов и/или они как-то логически группируются, вы можете добавить дополнительные классы '@ Configuration'. Но нет «лучшего» способа сделать это. –