我有一个基于Enterprise Monolith Spring 4+的Web服务,它结合了Prototype和Singleton作用域bean。对于新的调用,需要数百个原型bean进行初始化和注册。
到目前为止,以下是我所做的事情。此外,还可以从应用程序上下文中列出运行时使用的所有bean。
@Component
public class LogBeanPostProcessor implements BeanPostProcessor {
@Autowired
ApplicationContext applicationContext;
@Override
public Object postProcessBeforeInitialization(Object o, String s) throws BeansException {
return o;
}
@Override
public Object postProcessAfterInitialization(Object o, String s) throws BeansException {
try{
if(applicationContext.getAutowireCapableBeanFactory().isSingleton(s)){
System.out.println("singleton," + s);
}else{
System.out.println("not singleton," + s);
}
}catch (Exception e){
e.printStackTrace();
}
return o;
}
}
问题: 上面是一个好的开始-它只是在运行时记录作用域类型(单例或非单例)和Bean的名称。我正在进一步寻找有关当前初始化连接到哪个父bean初始化的信息。
如何确定由于哪个父对象而注入了哪个bean?任何指针都会有所帮助。