Web系统Spring/SpringMVC启动完成监控-程序员宅基地

技术标签: java  测试  

废话不多说直接贴代码

spring-mvc.xml:
<bean id="StartupListener" class="com.transino.WebStartupListener"/>
WebStartupListener.java
package com.transino;

import com.transino.service.UserService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextRefreshedEvent;

/**
 * @author 郏高阳
 * @date 2017.8.1
 * @jdk.version 1.8
 * @desc 系统启动监听器
 */
public class WebStartupListener implements ApplicationListener<ContextRefreshedEvent> {

    private static final Logger logger = LoggerFactory.getLogger(WebStartupListener.class);

    @Autowired
    private UserService userService;

    @Override
    public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) {
        if (contextRefreshedEvent.getApplicationContext().getParent() == null) {
            logger.info("------ 系统启动完成 ------");
            logger.info(userService.queryUserByName("王八"));
        }
    }
}
常遇到的问题无法使用Spring提供的Annotation

applicationontext和使用MVC之后的webApplicationontext会两次调用上面的方法,如何区分这个两种容器呢? 
但是这个时候,会存在一个问题,在web 项目中(spring mvc),系统会存在两个容器,一个是root application context ,另一个就是我们自己的 projectName-servlet context(作为root application context的子容器)。 

这种情况下,就会造成onApplicationEvent方法被执行两次。为了避免上面提到的问题,我们可以只在root application context初始化完成后调用逻辑代码,其他的容器的初始化完成,则不做任何处理,修改后代码 
 

if (contextRefreshedEvent.getApplicationContext().getParent() == null) {

        }

 

转载于:https://my.oschina.net/jgy/blog/1589260

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_34026276/article/details/91561697

智能推荐

驾考培训系统驾考答题系统科目一科目二科目三科目四模拟考试培训系统源码_交规考试系统 源码-程序员宅基地

文章浏览阅读1.3k次,点赞2次,收藏9次。介绍:驾考培训系统 驾考答题系统 科目一科目二科目三考试培训系统源码包括小车、客车、货车考试精选题目和模拟考试网盘下载地址:百度网盘https://pan.baidu.com/s/11j3yA9z-_DH2YUHUJ81SGQ_交规考试系统 源码

Unity扩展编辑器--类型3:Custom Editors Custom Editors_customeditor update-程序员宅基地

文章浏览阅读672次。Unity扩展编辑器--类型3:Custom EditorsCustom Editors加速游戏制作过程的关键是为哪些频繁使用的组件创建自定义的编辑器,为了举例,我们将会使用下面这个极其简单的脚本进行讲解,它的作用是始终保持一个对象注视某一点。public class LookAtPoint : MonoBehaviour { public Vector3 l_customeditor update

python开发数学教学软件_小象最新Python机器学习升级版视频学习教程 共24节精品课...-程序员宅基地

文章浏览阅读147次。小象最新Python机器学习升级版视频学习教程 共24节精品课本课程特点是从数学层面推导最经典的机器学习算法,以及每种算法的示例和代码实现(Python)、如何做算法的参数调试、以实际应用案例分析各种算法的选择等。课程目录:第一课:机器学习的数学基础1 - 数学分析1. 机器学习的一般方法和横向比较2. 数学是有用的:以SVD为例3. 机器学习的角度看数学4. 复习数学分析5. 直观解释常数e6...._数学教学开发教程

数据结构(C语言版)严蔚敏(字符串的模式匹配算法--KMP算法)_数据结构严蔚敏c语言版 串的算法-程序员宅基地

文章浏览阅读1.1k次,点赞2次,收藏8次。主要介绍字符串匹配算法(KMP)_数据结构严蔚敏c语言版 串的算法

Java 断点续传以及在线视频播放可选择任一时间播放原理_java怎么回放指定时间段视频-程序员宅基地

文章浏览阅读1.7k次。其实断点续传和视频选择从任一时间开始播放都很简单,本质上都是服务端读取文件的某一个范围返回给客户端,而服务端怎么知道客户端要从哪读到哪,客户端如何知道服务端是否支持断点续传,这就需要了解HTTP的“Range”约定。客户端首次访问资源时,在请求头中携带range:#意味读取从0到文件尾的范围range: bytes=0-Range头域可以请求实体的一个或者多个子范围,例如:表示头500个字节:bytes=0-499 表示第二个500字节:bytes=500-999 表示最后5_java怎么回放指定时间段视频

第六章 图_在数据结构中什么是带权图(网)-程序员宅基地

文章浏览阅读396次。第六章 图_在数据结构中什么是带权图(网)

随便推点

icmp抓包标识和序列号有两个BE和LE_icmp中的标识和序列号-程序员宅基地

文章浏览阅读2k次。如有错误欢迎指正_icmp中的标识和序列号

Android开发环境搭建(三)——NDK_android 安装awk-程序员宅基地

文章浏览阅读1.3k次。1、NDK是什么?NDK的全称是Native Development Kit,在JAVA里也有个JNI(Java Native Interface)的概念,可以在JAVA中访问一些C/C++的代码。大家知道在Android SDK里是无法编译C/C++代码的,NDK的作用就是实现C/C++代码的编译。但是Android也不希望开发者将自己的Native代码直接运行,所以ND_android 安装awk

mingw32下编译gdal-程序员宅基地

文章浏览阅读755次。编译环境:windows 8.1mingw32 4.8gdal 1.10.1官网:http://www.gdal.org//************************************ *转载请注明:tedeum.iteye.com ************************************/ 由于gdal编译没有使..._gdal库 mingw32编译

Python2、Python3共存问题_树莓派 python2 python3 共存-程序员宅基地

文章浏览阅读437次。1、官网上下载相应的版本(如:Python2.7、或者Python3.6, windows 、Linux都可以) 2、在安装时,最好指定其安装路径: 如Linux 进行编译安装版,–prefix=/usr/local/python36; Windows(Python2.7.exe) ,路径:C:/python27, 备注:windows下记得设置环境变量(可自行百度)。3、安装完以后,L_树莓派 python2 python3 共存

TensorFlow入门教程(26)车牌识别之文本检测模型EAST代码实现(二)_tensorflow入门教程(27)车牌识别之文本检测模型east代码实现(二)-程序员宅基地

文章浏览阅读1.2k次。##作者:韦访#博客:https://blog.csdn.net/rookie_wei#微信:1007895847#添加微信的备注一下是CSDN的#欢迎大家一起学习#1、概述上一讲,我们简单是介绍了EAST的论文,有了理论依据以后,接下来我们来一步一步实现代码。为了照顾不做车牌检测的网友,我们先来实现通用的自然场景下的文本检测,再基于此实现车牌检测。环境配置:操作系统:Ubuntu 64位显卡:GTX 1080tiPython:Python3.7TensorFlow:_tensorflow入门教程(27)车牌识别之文本检测模型east代码实现(二)

SpringMVC中参数校验使用教程_没有<version>5.3.5.final</version>-程序员宅基地

文章浏览阅读301次。一、环境准备在项目中添加以下依赖gradleorg.hibernate:hibernate-validator:5.3.5.Final1maven&lt;dependency&gt; &lt;groupId&gt;org.hibernate&lt;/groupId&gt; &lt;artifactId&gt;hibernate-validator&lt;/artifactId&..._没有5.3.5.final

推荐文章

热门文章

相关标签