这里使用的方法参照 https://stackoverflow.com/questions/33348937/print-all-the-spring-beans-that-are-loaded-spring-boot
CommandLineRunner
接口类型的 Bean 会在其他全部 Bean 初始化之后,在 SpringApplication.run()
之前执行,非常适用于完成在 Bean 层之上的某些特殊初始化操作(绝大多数初始化应该在 Bean 内通过依赖注入完成)。
@Bean
public CommandLineRunner commandLineRunner(ApplicationContext ctx) {
return args -> {
System.out.println("Here are beans loaded by me:");
String[] beanNames = ctx.getBeanDefinitionNames();
Arrays.sort(beanNames);
for (String beanName : beanNames) {
System.out.println(beanName);
}
};
}
ApplicationContext
继承自 BeanFactory
,getBeanDefinitionNames
可以列出该容器管理着的全部 Bean 名字列表。
网友评论