找到Bean在那里创建的
2020-07-18 • 预计阅读时间 1 分钟
2020-07-18 • 预计阅读时间 1 分钟
最近加入了一个项目,里面由于用了一堆starter
依赖。导致各种用不用的bean
都被加载进去了。一般这种情况下,在SpringBootApplication
里面排除一下就可以了。有些不常用的或者以前没用过的,想要排除一下就得找到这个bean
到底是在那个AutoConfiguratio
中创建的了。这个时候依靠BeanPostProcessor可以找到具体是谁在作怪。
@Configuration
public class LogBeanConfiguration implements BeanPostProcessor {
Logger log = LoggerFactory.getLogger(LogBeanConfiguration.class);
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
log.info("postProcessBeforeInitialization: bean(" + beanName + ")");
return bean;
}
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
log.info("postProcessAfterInitialization: bean(" + beanName + ")");
return bean;
}
}
通过这个其实可以统计一下项目到底在启动的时候加载了多少个bean
。spring
的机制虽好,但是也不能滥用呀……