事件监听机制相关测试|学习笔记

简介: 快速学习事件监听机制相关测试

开发者学堂课程【SpringBoot快速掌握 - 核心技术事件监听机制相关测试】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/612/detail/9282


事件监听机制相关测试


下面是几个重要的事件回调机制

1.创建 ApplicationContextlnitializer

首先创建 listener,将所有实现类创建在内,再创建HelloApplicationContextlnitializer 接口类,再实现ApplicationContextlnitializer,这里的泛型是 ConfigurableApplicationContext,再添加为实现的方法,这里有一个初始化方法,直接运行打印,测试代码模块如下:

package com. atguigu. springboot. listener;

import org.springframework.context.ApplicationContextInitializer;

import org.springframework.context.ConfigurableApplicationContext;

public class HelloApplicationContextInitializer implements ApplicationContextInitializer{

@Override

public void initialize(ConfigurableApplicationContext applicationContext) {

System.out.println("ApplicationContextInitializer...initialize..."+applicationContext);

2.实现  SpringApplicationRunListener  类接口:

添加实现方法,SpringApplicationRunListener  是在  ioc 容器未创建前调用 start,当基础环境准备好后调用 environmentPrepared, 当 ioc 的 Context 准备好后调用 contextPrepared,当 contextPrepared 整个运行完后调用所有的 contextLoaded,所有加载完后最后调用 finished,代码测试模块如下:

public class HelloSpringApplicationRunListener implements SpringApplicationRunListener {

@Override

public void starting() {

//监听容器的开始

System.out.println("SpringApplicationRunListener...starting..");}

@Override

public void environmentPrepared(ConfigurableEnvironment environment) {//准备的环境,也能获取到准备好的环境信息,环境里面还能拿到系统的一些属性

object o=environment.getSystemProperties().get("os .name");

System.out.println("SpringApplicationRunListener...environmentPrepared.. "+o);

}

@Override

public void contextPrepared(ConfigurableApplicationContext context) {

System.out.println("SpringApplicationRunListener...contextPrepared...");}

@Override

public void contextLoaded(ConfigurableApplicationContext context) {

System.out.println("SpringApplicationRunListener...contextLoaded...");// contextLoaded 加载完成

}

@Override

public void finished(ConfigurableApplicationContext context, Throwable exception) {

//创建完成

System.out.println("SpringApplicationRunListener...finished...");}}

3.实现  ApplicationRunner  类接口

添加实现方法,有一个  run 方法,测试模块代码如下:

package com.atguigu.springboot.listener;

import org.springframework.boot.Applicat ionArguments;

import org.springframework.boot.ApplicationRunner ;

import org.springframework.stereotype.Component;

@Component

public class HelloApplicationRunner implements Applicati onRunner {

@Override

public void run(ApplicationArguments args) throws Exception {

System.out.println("ApplicationRunner...run....");

}

}

4.实现 CommandLineRunner 类接口

添加实现方法,也有一个 run 方法,只不过是通过 args  实现的,测试模块代码如下:

package com.atguigu.springboot.listener;

import org .springframework.boot.CommandLineRunner;

import java.util.Arrays;

@Component

public class HelloCommandLineRunner implements CommandLineRunner {

@Override

public void run(String... args) throws Exception {

System.out.println("CommandLineRunner...run..."+ Arrays.asList(args));

}

}

写好后要作用的话需要配置,所以  ApplicationContextlnitializer,SpringApplicationRunListener  需要配置在 META-INF/spring.factories,需要配置的在个人原来的类路径下新建 META-INF 文件夹,文件夹下新建 spring.factories ,具体配置可以参考自动配置包下面的  spring.factories ,配置如下:

org.springframework.context.ApplicationContextInitializer=\

com.atguigu.springboot.listener.HelloApplicationContextInitializer

org.springframework.boot.SpringApplicationRunListener=\

com.atguigu.springboot.listener.HelloSpringApplicationRunListener

此时还需向 SpringApplicationRunListener 中写入有参构造器如下:

public HelloSpringApplicationRunListener(SpringApplication application, String[] args){

}

  ApplicationRunner,CommandLineRunner 只需要放在 ioc 容器中,所有容器中的需要再增加 @Component 注解

最后成功运行。

相关文章
|
Web App开发 JavaScript 前端开发
NB-loT 之通过 Iwm2m 服务器测试 Coap 协议报文 | 学习笔记
快速学习 NB-loT 之通过 Iwm2m 服务器测试 Coap 协议报文
409 0
NB-loT 之通过 Iwm2m 服务器测试 Coap 协议报文 | 学习笔记
|
1月前
|
NoSQL 算法 测试技术
图数据库基准测试 LDBC SNB 系列讲解:Schema 和数据生成的机制
作为大多数图数据库性能测试标配的 LDBC SNB 它是如何保障不同系统环境之间的测评比较公平且基准测试结果可重复的呢?本文从数据和 Schema 生成入手同你讲解它的原理。
37 2
图数据库基准测试 LDBC SNB 系列讲解:Schema 和数据生成的机制
|
2月前
|
Java 测试技术 编译器
JMM测试利器-JCStress学习笔记
JMM测试利器-JCStress学习笔记
|
8月前
java202303java学习笔记第四十六天-请求-postman接口测试
java202303java学习笔记第四十六天-请求-postman接口测试
54 0
|
11月前
|
测试技术
java202304java学习笔记第六十天-ssm-spring配置文件-完善测试环境
java202304java学习笔记第六十天-ssm-spring配置文件-完善测试环境
52 0
|
关系型数据库 OLAP API
测试 API|学习笔记
快速学习测试 API
117 0
测试 API|学习笔记
|
JavaScript Java 测试技术
app自动化测试(Android)--显式等待机制
app自动化测试(Android)--显式等待机制
119 0
|
存储 SQL 监控
PolarDB-X 进行 TP 负载测试(三)| 学习笔记
快速学习 PolarDB-X 进行 TP 负载测试。
301 0
PolarDB-X 进行 TP 负载测试(三)| 学习笔记
|
SQL 存储 关系型数据库
PostgreSQL 流复制搭建主从环境,同步和异步的解释,压力测试,主从角色切换|学习笔记
快速学习PostgreSQL 流复制搭建主从环境,同步和异步的解释,压力测试,主从角色切换
733 0
PostgreSQL 流复制搭建主从环境,同步和异步的解释,压力测试,主从角色切换|学习笔记
|
数据可视化 Dubbo Java
MSE 微服务测试---自动化回归最佳实践|学习笔记
快速学习 MSE 微服务测试---自动化回归最佳实践
294 0
MSE 微服务测试---自动化回归最佳实践|学习笔记

热门文章

最新文章