web项目启动执行方法
近期在项目中需要将用户在web启动时就查询出来,当作缓存使用。
一、首先需要实现 ServletContextListener 接口
public class UserCacheUtils implements ServletContextListener {
/**
* web服务器启动时执行
*/
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("启动");
}
/**
* 消亡时执行
*/
@Override
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("关闭");
}
}
ServletContextListener 接口中有2个方法 contextInitialized 方法在web容器创建时执行,而 contextDestroyed 是在容器销毁时执行,所以我们可以将我们需要执行的代码加入到上述2个方法中。
二、Web.xml 配置监听
我们要想执行上述代码就必须在Web.xml中配置监听去监听这个类。
<!-- 配置用户缓存监听路径 -->
<listener>
<listener-class>com.dffk.audsys.common.util.UserCacheUtils</listener-class>
</listener>
这里要配置自己的类。
三、Bean 注入
在这个类中,我们是不可以通过 @Autowired 获取到需要注入的 Bean ,这里我们需要使用 spring 进行对象注入。
public class UserCacheUtils implements ServletContextListener {
//获取spring注入的bean对象
private WebApplicationContext springContext;
@Autowired
private SysUserMapper sysUserMapper;
/**
* 存放所有人员信息,key为username
*/
public static Map<String, SysUser> userMap;
/**
* web服务器启动时执行
*/
@Override
public void contextInitialized(ServletContextEvent sce) {
springContext = WebApplicationContextUtils.getWebApplicationContext(sce.getServletContext());
if(springContext != null){
sysUserMapper = (SysUserMapper)springContext.getBean("sysUserMapper");
}else{
System.out.println("获取应用程序上下文失败!");
return;
}
System.out.println("启动");
getUsers();
}
/**
* 缓存人员信息
*/
public void getUsers () {
List<SysUser> users = sysUserMapper.findAllUsers();
users.stream().forEach((e) -> {
userMap.put(e.getUserName(), e);
});
userMap.keySet().stream().forEach(System.out :: println);
}
/**
* 消亡时执行
*/
@Override
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("关闭");
}
}
以上在 contextInitialized 方法中首先去初始化 需要注入的 bean,然后再去执行自己的方法。我的方法主要是为了将人员信息缓存下来。
web项目启动执行方法的更多相关文章
- 详解Java Web项目启动执行顺序
一. web.xml加载过程(步骤): 启动web项目,容器(如Tomcat.Apache)会去读取它的配置文件web.xml 中的两个节点,context-param和listener. 紧接着,容 ...
- Java Web项目启动执行顺序
一. 1.启动一个WEB项目,WEB容器会先去读取它的配置文件web.xml,读取<context-param>和<listener>两个节点. 2.接着,容器创建一个Serv ...
- web项目启动流程探索
在web项目的启动过程中,我们希望知道它的一般流程是什么,这样我们就可以在各个流程中加入相应的功能,或者对于我们排错也有帮助. 我们知道,当我们启动tomcat容器以后,容器首先初始化一些必要的组件, ...
- 关于idea中,web项目启动tomcat,访问资源报错404
背景: web项目启动tomcat,访问相应的资源,报错404,前提资源路径是没错的. 原因: 1.确定是不是web项目 不是的话: 配置web-inf的路径和webroot(web根目录)的路径 2 ...
- 在web项目启动时,使用监听器来执行某个方法
在web项目中有很多时候需要在项目启动时就执行一些方法,而且只需要执行一次,比如:加载解析自定义的配置文件.初始化数据库信息等等,在项目启动时就直接执行一些方法,可以减少很多繁琐的操作. 这里写了个简 ...
- 在web项目启动时,执行某个方法
在web项目中有很多时候需要在项目启动时就执行一些方法,而且只需要执行一次,比如:加载解析自定义的配置文件.初始化数据库信息等等,在项目启动时就直接执行一些方法,可以减少很多繁琐的操作. 在工作中遇到 ...
- 在web项目启动时执行某个方法
在web项目中有很多时候需要在项目启动时就执行一些方法,而且只需要执行一次,比如:加载解析自定义的配置文件.初始化数据库信息等等,在项目启动时就直接执行一些方法,可以减少很多繁琐的操作. 在工作中遇到 ...
- web项目启动时,自动执行代码的几种方式
在项目开发过程中,往往需要一些功能随着项目启动而优先启动,下面我总结几种方式(非spring boot) spring boot的参考 spring boot 学习之路9 (项目启动后就执行特定方法) ...
- java web项目启动加载顺序
转载:https://www.cnblogs.com/writeLessDoMore/p/6935524.html web.xml加载过程(步骤): 1.启动WEB项目的时候,容器(如:T ...
随机推荐
- JAVA多线程提高十一:同步工具Exchanger
Exchanger可以在对中对元素进行配对和交换的线程的同步点.每个线程将条目上的某个方法呈现给 exchange 方法,与伙伴线程进行匹配,并且在返回时接收其伙伴的对象.Exchanger 可能被视 ...
- cmd下常用命令汇总
1.获得文件夹内所有文件的文件名列表 dir *.png /b>list.txt 其中: (1)*.png表示筛选后缀为.png的文件 (2)/b为输出的模式.如下: 引用 /b 只有文件名 ...
- Dubbo+Zookeeper+SpringMVC+Maven整合实现微服务项目
互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的.现在核心业务抽取出来,作为独立的服务,使 ...
- 【Hadoop】用web查看hadoop运行状态
博文已转移,请借一步说话.http://www.daniubiji.cn/archives/621 上一篇文章(去博客园),我们安装完hadoop,下面我们从视觉上看看hadoop怎么玩的. 我们可以 ...
- MM(Majorize-Minimization, Minorize-Maximization)优化方法
MM算法思想 MM算法是一种迭代优化方法,它利用函数的凸性来找到原函数的最大值或最小值.当原目标函数\(f(\theta)\)较难优化时,算法不直接对原目标函数求最优解,而去求解逼近于原目标函数的一个 ...
- hdu 2063 过山车 二分匹配(匈牙利算法)
简单题hdu2063 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2063 过山车 Time Limit: 1000/1000 MS (Java/Ot ...
- sqlmap tamper编写
#!/usr/bin/env python """ Copyright (c) 2006-2017 sqlmap developers (http://sqlmap.or ...
- Mac nginx 配置
nginx 安装: 在苹果系统下如果要安装nginx,首先要安装brew.安装brew可以查看网站:https://brew.sh: 一条命令即可搞定:/usr/bin/ruby -e "$ ...
- Linux 编译 apr-util 时报错
前言 Apache 2.4 以后的版本不再自带 APR 库(Apache Portable Runtime,Apache 可移植运行库),所以在安装 Apache 之前需要手动下载安装 APR 库. ...
- elk系列4之kibana图形化操作【转】
preface 我们都搭建了ELK系统,且日志也能够正常收集的时候,那么就配置下kibana.我们可以通过kibana配置柱状图,趋势图,统计图,圆饼图等等各类图.下面就拿配置统计图和柱状图为例,结合 ...