文档章节

Web系统Spring/SpringMVC启动完成监控

郏高阳
 郏高阳
发布于 2017/12/13 15:44
字数 350
阅读 1.6K
收藏 0

废话不多说直接贴代码

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) {

        }

 

© 著作权归作者所有

郏高阳

郏高阳

粉丝 103
博文 153
码字总数 112334
作品 1
黄浦
程序员
私信 提问
加载中

评论(0)

Hello , Spring Boot

Spring Boot Spring Boot主要目的是简化了Spring的引用开发,遵循约定大于配置的思想,不需要我们再去配置就能运行Spring应用,Spring Boot管理Spring容器,第三方插件,并且提供了很多默认系...

胖先森
2018/09/04
0
0
SpringBoot Admin的使用

Spring Boot Actuator 提供了对单个 Spring Boot 应用的监控,信息包含应用状态、内存、线程、堆栈等,比较全面的监控了 Spring Boot 应用的整个生命周期。 但是这样监控也有一些问题:第一,...

zw965
2019/09/23
127
0
使用spring-boot-admin对spring-boot服务进行监控

原文:http://www.cnblogs.com/ityouknow/p/8440455.html 上一篇文章《springboot(十九):使用Spring Boot Actuator监控应用》介绍了Spring Boot Actuator的使用,Spring Boot Actuator提供了......

这个名字想了很久~
2018/03/01
0
0
[springboot](十三)spring boot admin 监控集群

版权声明:本文为博主原创文章,未经博主允许不得转载。有任何问题请邮件联系ashuo.com@qq.com https://blog.csdn.net/drdongshiye/article/details/82808083 参考https://www.cnblogs.com/i...

菜鸟腾飞
2018/09/21
0
0
springboot2 admin的使用

【前情提要】Spring Boot Actuator 提供了对单个 Spring Boot 应用的监控,信息包含应用状态、内存、线程、堆栈等,比较全面的监控了 Spring Boot 应用的整个生命周期。但是这样监控也有一些...

长河
2019/11/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

SQL重复记录查询的几种方法

1 查找表中多余的重复记录,重复记录是根据单个字段 1 select * from TB_MAT_BasicData12 where MATNR in ( select MATNR from TB_MAT_BasicData1 group by MATNR having count(MATNR)>1)......

osc_vvylzpqs
16分钟前
16
0
十行代码让你的单机“影分身”,分布式训练速度快到飞起

工程师:“在你辉煌的时刻,让我为你唱首歌,我的好兄弟,心里有苦你对我说。” 计算机:“哥啊,那我可就说了,我是真的苦啊,现在一个模型动辄好几亿参数,数据集也是大的吓人,兄弟我内存...

飞桨PaddlePaddle
16分钟前
17
0
mysql: The target table of the UPDATE is not updatable

目标是批量更新目标表部分字段的数据 操作内容: 1.创建临时表 drop table if exists tempTableXXX create table tempTableXXX ( TEMP_ID int not null, BM varchar(14) ) 2.把数据存入临...

osc_5g68egoj
17分钟前
12
0
java 异常链

在设计模式中有一个叫做责任链模式,该模式是将多个对象链接成一条链,客户端的请求沿着这条链传递直到被接收、处理。同样 Java 异常机制也提供了这样一条链:异常链。 我们知道每遇到一个异...

osc_0bpc54vt
18分钟前
8
0
Go语言开发的微服务框架

 Go语言开发的微服务框架有什么?   1、项目名称:Istio   项目简介:Istio是由Google、IBM和Lyft开源的微服务管理、保护和监控框架。使用istio可以很简单的创建具有负载均衡、服务间认证...

osc_aitaq37i
21分钟前
21
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部