【发布时间】:2015-05-22 15:38:25
【问题描述】:
我想知道 Spring Boot 应用程序注册附加 bean 的最佳位置是什么。我有一个用 @SpringBootApplication 注释的 Main 类,并且该类中定义的 bean 被拾取。但是当我把这些 bean 放在另一个类中时,它们似乎没有被注册。
阅读文档时,我想到@SpringBootApplication 会隐式搜索其中包含@Bean 注释的类。
所以我现在的选择是:
-
把所有
@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 docs of
@Bean。通常你会将这些方法放在一个用@Configuration注释的类中。为什么你认为这不是一个好主意?文档还谈到了“精简”模式。 -
2.是的方法。
@SpringBootApplication是一个方便的注解,包含了@Configuration,所以如果你没有很多bean,你可以把它们都放在那里。如果您有许多 bean,和/或它们以某种方式在逻辑上分组,您可以添加额外的@Configuration类。但是没有“更好”的方法可以做到这一点。
标签: java spring spring-boot