Springブートによって読み込まれたすべてのBeanを表示する方法
SpringBootでは、 `appContext.getBeanDefinitionNames()`を使用して、SpringコンテナによってロードされたすべてのBeanを取得できます。
1.インターフェイスとしてのCommandLineRunner
Application.java
package com.mkyong; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ApplicationContext; import java.util.Arrays; @SpringBootApplication public class Application implements CommandLineRunner { @Autowired private ApplicationContext appContext; public static void main(String[]args) throws Exception { SpringApplication.run(Application.class, args); } @Override public void run(String... args) throws Exception { String[]beans = appContext.getBeanDefinitionNames(); Arrays.sort(beans); for (String bean : beans) { System.out.println(bean); } } }
出力
Console.java
application customerRepository customerRepositoryImpl dataSource dataSourceInitializedPublisher dataSourceInitializer dataSourceInitializerPostProcessor emBeanDefinitionRegistrarPostProcessor entityManagerFactory entityManagerFactoryBuilder hikariPoolDataSourceMetadataProvider jdbcTemplate jpaContext//...
2. BeanとしてのCommandLineRunner
ロードされた豆を印刷する方法はまったく異なります。
Application.java
package com.mkyong; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; import java.util.Arrays; @SpringBootApplication public class Application { public static void main(String[]args) throws Exception { SpringApplication.run(Application.class, args); } @Bean public CommandLineRunner run(ApplicationContext appContext) { return args -> { String[]beans = appContext.getBeanDefinitionNames(); Arrays.stream(beans).sorted().forEach(System.out::println); }; } }
参考文献
JavaDoc]。リンク://spring-boot/spring-boot-non-web-application-example/[Spring
起動非Webアプリケーションの例]