思路:
-
获取ApplicationContext通过getBeanDefinitionNames() 所以问题就变成,如何获取ApplicationContext
- 使用构造注入ApplicationContext
@RequestMapping("/spring") @RestController public class GetAllBeansInSpringController { private ApplicationContext applicationContext; @Autowired public void setApplicationContext(ApplicationContext applicationContext) { this.applicationContext = applicationContext; } @GetMapping("/beans") public String[] getAllBeansInSpring() { return applicationContext.getBeanDefinitionNames(); } } - 获取启动类的返回值
@SpringBootApplication public class MykafkaApplication { private static ApplicationContext context; public static void main(String[] args) { context = SpringApplication.run(MykafkaApplication.class, args); display(); } public static void display() { // System.err.println(context.getBeanDefinitionCount()); Arrays.stream(context.getBeanDefinitionNames()).forEach(System.err::println); } } - 其它一些方式(待补充)
- 使用构造注入ApplicationContext
-
一些外部工具
- 使用Actuator(待补充)