2 回答

TA貢獻1875條經驗 獲得超3個贊
也許這段代碼可以幫助
for (String name : applicationContext.getBeanFactory().getBeanDefinitionNames()) {
BeanDefinition beanDefinition = applicationContext.getBeanFactory().getBeanDefinition(name);
String className = beanDefinition.getBeanClassName();
Class<?> clazz = Class.forName(className);
}
循環讓你得到所有的BeanDefinitions 然后你為每個加載類并做你想做的事?
順便說一句,這可能不是使用 Spring 的好方法,但它會起作用。

TA貢獻1810條經驗 獲得超4個贊
您可以創建最后一個 bean,例如將它放在@Configuration具有最小初始化順序的類中,這樣它就是最后一個帶有 的 bean @Order(Ordered.LOWEST_PRECEDENCE),就是這樣:
@Configuration
@Order(Ordered.LOWEST_PRECEDENCE)
public class Last {
@Autowired
ApplicationContext applicationContext;
@Bean
public String lastBean() {
applicationContext.getBeanDefinitionNames(); //retrive all created BeanDefinitions in the constructor of a Bean
applicationContext.getBeansOfType(Object.class); //retrive the types (as Class)
return "lastBean";
}
}
添加回答
舉報