最近在搞James邮件服务器和项目的整合,之前的做法是先启动项目在启动James,或者先启动james然后在启动项目,现在项目经理要求James和项目要同时启动,不需要在额外的启动了,项目启动了,James也就随着启动,我想就是写个监听器执行其初始化化方法,具体流程如下:
1:自己写个监听器,实现 ServletContextListener 接口,
2, 将容器启动时需要执行的方法写在初始化方法内
3, 在web.xml 中添加你的监听器
这样就完成了,
其过程为:当容器启动时,会到web.xml 中扫描,看是否有监听器,当扫描到监听器时,会根据你的配置找到相应的类,找到类之后执行 contextInitialized 方法。这样就完成了容器启动时需要执行的方法,效果如下
以上是本人亲自试的,可以实现,在网上还发现了其他的 方法,有兴趣的朋友可以去试一下:
方法一:
实现org.springframework.beans.factory.config.BeanPostProcessor接口:
- public class InstantiationTracingBeanPostProcessor implements BeanPostProcessor {
- public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
- return bean;
- }
- public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
- return bean;
- }
- }
- <bean class="***.***.InstantiationTracingBeanPostProcessor"/>
方法二:
实现org.springframework.beans.factory.InitializingBean接口:
- public class SysInitBean implements InitializingBean, ServletContextAware {
- public void afterPropertiesSet() throws Exception {
- }
- @Override
- public void setServletContext(ServletContext servletContext) {
- }
- }
- <bean class="***.***.