Java项目启动实列化_在java web项目中实现随项目启动的额外操作

前言

在web项目中经常会遇到在项目启动初始,会要求做一些逻辑的实现,比如实现一个消息推送服务,实现不同类型数据同步的回调操作初始化,或则通知其他客户服务器本项目即将启动,等等。对于这种要求,目前个人了解到的方式只要有三种。

通过新加一个servlet。然后在web.xml注册该servlet,通过该servlet的init()来实现处理逻辑。

servlet_test

com.guozg.test.service.servlettest

5

servlet_test

/servlettest

class servlettest extends httpservlet{

@override

public void init() throws servletexception {

//do something;

}

}

2.  添加web服务器的监听servletcontextlistener来实现,需要实现

class servletlistenertest implements servletcontextlistener{

@override

public void contextinitialized(servletcontextevent servletcontextevent) {

//do something when system start

}

@override

public void contextdestroyed(servletcontextevent servletcontextevent) {

//do something while the system crash

}

}

com.guozg.test.service.servletlistenertest

3.  通过spring的监听事件,注册一个spring初始化容器时的监听,实现applicationlistener接口,并实现onapplicationevent()方法。

/**

* @auther guozg

*/

@service

public class folderupdatalister implements applicationlistener {

@override

public void onapplicationevent(contextrefreshedevent contextrefreshedevent) {

//do something

}

在spring的监听中,如果用到springmvc,由于父子容器的原因,会两次调用初始化容器事件,使用时要注意考虑。但是优点是此时可以使用spring的注入调用其他service。前面两种与web服务器有关的,在实际运用中可能会使用不成功,就是在web.xml中找不到目标类,也即是web.xml的包中没有引入目标类的包。当出现这种情况就可以选用第三种了。还有一种方式是在web服务器中再加一个filter。好了,目前知道的就是这些,具体使用看情况而定。另外为了不占用web 服务器启动的资源和时间,可以考虑新起线程来做操作。

希望与广大网友互动??

点此进行留言吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值