@PostConstruct、@PreDestroy与Servlet生命周期

众所周知,Servlet的生命周期:

  1. 通过init()方法进行初始化。
  2. 通过service()方法进行处理客户端请求。
  3. 通过destroy()方法进行销毁。

从JavaEE5开始,出现了两个影响Servlet的生命周期的注解:

  1. @PostConstruct
  2. @PreDestroy

这两个注解可用于修饰两个非静态的void方法,而且这个方法不能抛出异常声明。

注意:这两个注解需要服务器支持Servlet2.5或以上规范,所以Tomcat要6.0.X及以上版本才行。

因此Servlet的生命周期又变成了以下这种情况:

  1. @PostConstruct修饰的方法。
  2. 通过init()方法进行初始化。
  3. 通过service()方法进行处理客户端请求。
  4. 通过destroy()方法进行销毁。
  5. @PreDestroy修饰的方法。

注意:在Servlet中,@PostConstruct修饰的方法、init()方法、destroy()方法、@PreDestroy修饰的方法都只会执行一次,而service()每次请求来都会被调用。

在一些IOC容器(例如:Spring、CDI、Guice等)中,@PostConstruct、@PreDestroy注解用于初始化和销毁一个对象,不单单只针对Servlet。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值