springboot + ApplicationListener
Posted 旋转的梦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot + ApplicationListener相关的知识,希望对你有一定的参考价值。
ApplicationListener自定义侦听器类
@Component public class InstantiationTracingBeanPostProcessor implements ApplicationListener<ContextRefreshedEvent> { private static final Logger LOG = Logger.getLogger(InstantiationTracingBeanPostProcessor.class); private static boolean initialized; @Autowired private ManageResolver manageResolver; @Override public 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(); } /** * 配置拦截器 */ @Override public void addInterceptors(InterceptorRegistry registry) { // 多个拦截器组成一个拦截器链 // addPathPatterns 用于添加拦截规则 // excludePathPatterns 用户排除拦截 registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**"); super.addInterceptors(registry); } }
以上是关于springboot + ApplicationListener的主要内容,如果未能解决你的问题,请参考以下文章
Xcode 错误 ITMS-90168 “您上传的二进制文件无效”
Spring Boot实战笔记-- Spring常用配置(事件Application Event)
CloudFront、应用程序负载均衡器、EC2 获取重定向 301
SpringBoot入门到精通-SpringBoot自动配置原理