Listener
@WebListener
implements ServletContextListener/ServletRequestListener/HttpSessionListener/ServletRequestAttributeListener
@ServletComponentScan//扫描@WebListener
Filter
三种方式:
1、利用@WebFilter注解配置
@WebFilter(filterName="customFilter",urlPattern="/*")
public class CutomeFilter implements Filter
@ServletComponentScan
缺点:无法保证过滤器顺序
2、FilterRegistrationBean的方式(推荐这种)
@Configuration
public class FilterRegistration{
@Bean
public FilterRegistrationBean filterRegistrationBean{
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
filterRegistrationBean.setFilter(new CustomFilter());
filterRegistrationBean.setName("customFilter");
filterRegistrationBean.addUrlPatterns("/*");
filterRegistrationBean.setOrder(10);
return filterRegistrationBean;
}
}
public class CutomeFilter implements Filter{
}
3、xml配置方式
拦截器
@Component
A implements HandlerIntercepter
@Configuration
implements WebMvcConfigure{
@Resource
A a;
addIntercepter(IntercepterRegistry intercepterRegistry){
intercepterRegistry.addIntercepter(a).addPattern("/*");
}
}
自定义事件
3要素:事件监听者、事件发布者、事件本身
事件监听者
@Component
MyListener implements ApplicationListener
事件本身
MyEvent extends ApplicationEnvent
事件发布
@Autowired
ApplicationContext applicationContext;
applicationContext.publishEnvent(new MyEvent(""));