JavaWeb项目启动时,自动执行指定方法
根据需求文档做了一个在给定参数时间内持续增加积分的功能,自动置顶加分项目,超出时间不再继续加分并取消置顶。
就用了timer定时器task任务,在持续时间结束之后执行取消置顶的操作,考虑到web项目停止后timer定时器任务关闭,重新启动项目后不会自动执行,就打算在项目启动时执行执行方法继续执行定时器任务。
public static void main(String[] args) {try{System.out.println("等待取消置顶。");Calendar calendar = Calendar.getInstance();calendar.set(2019,0,15,16,30,00);System.out.println(calendar.getTime());Timer timer = new Timer();timer.schedule(new TimerTask() {@Overridepublic void run() {//TODO 需要做的操作System.out.println("取消置顶");}},calendar.getTime());timer.cancel();timer.purge();timer = null;}catch(Exception e){e.printStackTrace();}}
以上是背景。
本人使用框架是ssm
在网上搜集了一些方案,有监听,有注解。
最后选定了两种可行办法
1.使用@PostConstruct注解
在service中定义了一个void方法
@Service
public class TestService{@PostConstruct public void start(){System.out.println("项目启动打印123.");}
}
效果如下
2.监听(Listener)
创建一个监听的类,实现ServletContextListener
public class MyListener implements ServletContextListener {@Overridepublic void contextDestroyed(ServletContextEvent arg0) {// TODO Auto-generated method stub}@Overridepublic void contextInitialized(ServletContextEvent arg0) {System.out.println("项目一开始就打印了!");}}
然后在web.xml中增加配置
<listener><listener-class>xxx.xxx.xxx.MyListener</listener-class>
</listener>
然后项目启动可以看到控制台打印:
还有一种继承HttpServlet的个人感觉比较麻烦就先写这两种了。
后续可能会补充。有问题欢迎留言
JavaWeb项目启动时,自动执行指定方法相关推荐
- spring在项目启动时就执行特定方法
如何在项目启动时就执行特定方法 1. 方法上加注解@PostConstruct @Compant public class InitDemo{@PostConstructpublic void ini ...
- 介绍Spring Boot 启动时,自动执行指定方法的 7 种方法
目录 前言 实现方式 1.实现ServletContextListener接口contextInitialized方法 2.静态代码块方式 3.@PostConstruct注解方式 4. 实现Serv ...
- 如何在项目启动时就执行某些操作
参考资料:如何在项目启动时就执行某些操作 在实际的项目开发中经常会遇到一些需要在项目启动的时候进行初始化操作的需求,比如初始化线程池,配置某些对象的序列化和反序列化方式,加载黑名单白名单,加载权限应用 ...
- JavaWeb项目启动时,tomcat会启动两次的原因(之一)和解决方案
JavaWeb项目启动时,tomcat会启动两次的原因(之一)和解决方案 参考文章: (1)JavaWeb项目启动时,tomcat会启动两次的原因(之一)和解决方案 (2)https://www.cn ...
- JavaWeb 项目启动时,后台开启一个线程的方法
原文链接:http://blog.csdn.net/it_wangxiangpan/article/details/7168286 JavaWeb 服务启动时,在后台启动加载一个线程. 目前,我所掌握 ...
- Spring Boot————Web应用启动时自动执行ApplicationListener用法
原文:<web服务启动spring自动执行ApplicationListener的用法> 引言 我们知道,一般来说一个项目启动时需要加载或者执行一些特殊的任务来初始化系统,通常的做法就是用 ...
- docker 运行mysql镜像_docker 生成mysql镜像启动时自动执行sql
在docker 创建 mysql 容器时,往往需要在创建容器的过程中创建database 实例,代码如下: docker run -d -p 3308:3306 -e MYSQL_ROOT_PASSW ...
- vue配置项目启动时自动打开浏览器
在vue.config.js文件中添加以下配置,重点是配置host,port,open module.exports = {devServer: {host: 'localhost',//启动后的ho ...
- Ubuntu桌面启动后自动执行指定的命令或程序的三种方法
使用Ubuntu的过程中,经常会开机后执行一些固定的动作,每次手工操作很麻烦.其实Ubuntu有很多方法可以自动执行脚本和命令,先来介绍三种最简单的,文章最后会提到几种其他的方法. 一.基于图形桌面 ...
- java web 启动时执行_java Web 启动时自动执行代码的几种方式
Web容器启动后执行代码的几种方式,其执行顺序为:4===>5===>1===>2===>3,即指定init-method的Bean开始执行,接着实现spring的Bean后置 ...
最新文章
- 中国批准AMD收购赛灵思!苏妈花350亿美元集齐CPU\GPU\FPGA三大芯片业务
- 003_Servlet生命周期
- python语言学习:python语言学习中的定义类、定义函数、封装api等详细攻略
- Stanford 研究领域
- c语言 编程显示图案*,*型图案的显示与控制(学习C语言后的编程尝试)(2)(完)...
- retain、strong、weak、assign区别
- linux中常用的头文件
- [css] 如何取消从父级元素继承下来的CSS样式呢?
- kafka消息消费有延迟_RabbitMQ与Kafka的技术差异以及使用注意点
- 互联网日报 | 网易回港二次上市首日涨5.69%;特斯拉成全球市值最高车企;大兴机场开通首条货运航线...
- js中图片获取src的正则
- Java之intern方法
- 【WPF】WPF DataGrid List数据源 双向绑定通知机制之ObservableCollection使用以及MultiBinding 的应用...
- 软件登录账号信息 删除
- 用计算机控制神舟十号,整理后的计算机控制系统复习题答案
- 数模【Mathematica(安装、入门方法、基本计算、基本图形、创建互动模型、利用数据、幻灯片演示、完整实例)】
- python数据分析 - numpy | ndarray数组 | numpy常用函数
- CAD绘制区域覆盖对象
- 冰羚-IceOryx FAQ翻译
- 云计算(Day 8)
热门文章
- Rayman的绝顶之路——Leetcode每日一题打卡16
- java图片转pdf_java使用itextpdf将图片转换成pdf的简单实例 | 学步园
- 【ASO优化】产品ASO优化的流程分解
- 明翰英语教学系列之音标篇V0.2(持续更新)
- 网吧服务器组装方案,网吧服务器配置方案有哪些
- 苹果手机服务器暂时不可用,服务暂时不可用【操作途径】
- [转]二阶巴特沃斯(Butterworth)滤波器
- 研究生硕士论文开题报告中的进度和安排该怎么写?
- python断言语句_Python断言assert的用法代码解析
- Oracle PO ER Model