在Spring Boot中,你可以通过实现ApplicationContextAware
接口来获取ApplicationContext
,然后使用它来获取并打印Bean的信息。以下是一个简单的示例:
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
@Component
public class BeanInfoPrinter implements ApplicationContextAware {
private ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext) {
this.applicationContext = applicationContext;
}
public void printBeanInfo() {
String[] beanNames = applicationContext.getBeanDefinitionNames();
for (String beanName : beanNames) {
System.out.println(beanName);
}
}
}
在需要的时候,你可以注入BeanInfoPrinter
并调用printBeanInfo
方法来打印所有Bean的名字:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class SomeService {
private final BeanInfoPrinter beanInfoPrinter;
@Autowired
public SomeService(BeanInfoPrinter beanInfoPrinter) {
this.beanInfoPrinter = beanInfoPrinter;
}
public void printBeans() {
beanInfoPrinter.printBeanInfo();
}
}
当Spring Boot应用启动后,调用printBeans
方法将会列出所有的Bean。