1
我试图在启动SpringApplication时登记我写的所有bean。列出SpringApplication.run加载的所有我的bean
获取全部列出的bean已完成。这段代码做到了。
String[] beanNames = appContext.getBeanDefinitionNames();
Arrays.sort(beanNames);
for (String beanName : beanNames) {
System.out.println(beanName);
}
我试图用一个基本的过滤器来查找我的东西。
String[] beanNames = appContext.getBeanDefinitionNames();
Arrays.sort(beanNames);
for (String beanName : beanNames) {
if (beanName.matches("(.*)Controller"))
System.out.println(beanName);
}
但是,这不起作用,因为当类加载它真的是加载的bean名称,而不是类的确切名称。所以如果我写了一个my.personal.package.structure.MyController它很可能会显示为myController。封装结构信息丢失,呈现这种技术,效果不佳。
有没有人尝试过一些其他工作方式。我期望这对于开发人员进行调试非常方便。
我添加了** spring-boot-starter-actuator **并打到** localhost:8080/beans **。我猜,我列出了所有加载的豆子的很长列表。但我正在寻找一种只列出我添加的bean的方法。所以,不,这不是我想要的。 –
你见过我的第二个选择吗?你只需要添加你的匹配条件吧...... – Pau
我想第二个选项。但直到现在,没有运气。 –