ApplicationListener自定义侦听器类
@Component public class InstantiationTracingBeanPostProcessor implementsApplicationListener<ContextRefreshedEvent> {private static final Logger LOG = Logger.getLogger(InstantiationTracingBeanPostProcessor.class);private static boolean initialized;@Autowiredprivate ManageResolver manageResolver;@Overridepublic void onApplicationEvent(ContextRefreshedEvent event) {try {//只在初始化“根上下文”的时候执行final ApplicationContext app = event.getApplicationContext();if (null == app.getParent()&& ("Root WebApplicationContext".equals(app.getDisplayName())|| app.getDisplayName().contains("AnnotationConfigEmbeddedWebApplicationContext"))&& "/xweb".equals(app.getApplicationName())) { // 当存在父子容器时,此判断很有用LOG.info("*************:" + event.getSource());LOG.info("*************:" + app.getDisplayName());LOG.info("*************:" + app.getApplicationName());LOG.info("*************:" + app.getBeanDefinitionCount());LOG.info("*************:" + app.getEnvironment());LOG.info("*************:" + app.getParent());LOG.info("*************:" + app.getParentBeanFactory());LOG.info("*************:" + app.getId());LOG.info("*************:" + app.toString());LOG.info("*************:" + app);if(!initialized && !manageResolver.IsInitialCompleted()) {manageResolver.initLater();initialized = true;}}} catch (Exception e) {LOG.error("((XmlWebApplicationContext) event.getSource()).getDisplayName() 执行失败,请检查Spring版本是否支持");}}}
SpringBoot应用程序启动类
@SpringBootApplication @ImportResource({"classpath:config/applicationContext-xweb-dubbo.xml","classpath:config/applicationContext-xweb.xml"}) @Configuration @ComponentScan @EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class, RedisAutoConfiguration.class}) public class XwebApplication extends WebMvcConfigurerAdapter {public static void main(String[] args) {SpringApplication springApplication =new SpringApplication(XwebApplication.class);springApplication.addListeners(new InstantiationTracingBeanPostProcessor());springApplication.run(args);} /*** 上传附件容量限制* @return*/@Bean public MultipartConfigElement multipartConfigElement() { MultipartConfigFactory factory = new MultipartConfigFactory();factory.setMaxFileSize("102400KB"); factory.setMaxRequestSize("112400KB"); return factory.createMultipartConfig(); } /*** 配置拦截器*/@Overridepublic void addInterceptors(InterceptorRegistry registry) {// 多个拦截器组成一个拦截器链// addPathPatterns 用于添加拦截规则// excludePathPatterns 用户排除拦截registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**");super.addInterceptors(registry);}}