我如何知道作为Spring Boot应用程序一部分加载的所有bean的名称?我想在main方法中有一些代码来打印服务器启动后加载的bean的详细信息。
如spring-boot入门指南中所示:
@SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } @Bean public CommandLineRunner commandLineRunner(ApplicationContext ctx) { return args -> { System.out.println("Let's inspect the beans provided by Spring Boot:"); String[] beanNames = ctx.getBeanDefinitionNames(); Arrays.sort(beanNames); for (String beanName : beanNames) { System.out.println(beanName); } }; } }
如果您想这样做,可以使用[getSingletonNames()。但小心点。此方法仅返回已实例化的bean。如果尚未实例化Bean,则不会 通过返回它getSingletonNames()。
getSingletonNames()