HM-SpringBoot2.7【SpringBoot监听机制】

 

 

 

 


 

1

(1)

 1 package com.haifei.springboot12listener.listener;
 2 
 3 import org.springframework.context.ApplicationContextInitializer;
 4 import org.springframework.context.ConfigurableApplicationContext;
 5 import org.springframework.stereotype.Component;
 6 
 7 @Component //注册到spring的IOC容器中
 8 public class MyApplicationContextInitializer implements ApplicationContextInitializer {
 9 
10     @Override
11     public void initialize(ConfigurableApplicationContext configurableApplicationContext) {
12         System.out.println("ApplicationContextInitializer.....initialize....");
13     }
14 
15 }
 1 package com.haifei.springboot12listener.listener;
 2 
 3 import org.springframework.boot.ConfigurableBootstrapContext;
 4 import org.springframework.boot.SpringApplicationRunListener;
 5 import org.springframework.context.ConfigurableApplicationContext;
 6 import org.springframework.core.env.ConfigurableEnvironment;
 7 import org.springframework.stereotype.Component;
 8 
 9 @Component
10 public class MySpringApplicationRunListener implements SpringApplicationRunListener {
11 
12     @Override
13     public void starting(ConfigurableBootstrapContext bootstrapContext) {
14         System.out.println("starting...项目启动中");
15     }
16 
17     /*@Override
18     public void starting() { //已过时
19 
20     }*/
21 
22     @Override
23     public void environmentPrepared(ConfigurableBootstrapContext bootstrapContext, ConfigurableEnvironment environment) {
24         System.out.println("environmentPrepared...环境对象开始准备");
25     }
26 
27     /*@Override
28     public void environmentPrepared(ConfigurableEnvironment environment) { //已过时
29 
30     }*/
31 
32     @Override
33     public void contextPrepared(ConfigurableApplicationContext context) {
34         System.out.println("contextPrepared...上下文对象开始准备");
35     }
36 
37     @Override
38     public void contextLoaded(ConfigurableApplicationContext context) {
39         System.out.println("contextLoaded...上下文对象开始加载");
40     }
41 
42     @Override
43     public void started(ConfigurableApplicationContext context) {
44         System.out.println("started...上下文对象加载完成");
45     }
46 
47     @Override
48     public void running(ConfigurableApplicationContext context) {
49         System.out.println("running...项目启动完成,开始运行");
50     }
51 
52     @Override
53     public void failed(ConfigurableApplicationContext context, Throwable exception) {
54         System.out.println("failed...项目启动失败");
55     }
56 }
 1 package com.haifei.springboot12listener.listener;
 2 
 3 import org.springframework.boot.CommandLineRunner;
 4 import org.springframework.stereotype.Component;
 5 
 6 import java.util.Arrays;
 7 
 8 /**
 9  * 利用注解@Component将该实现类MyCommandLineRunner注册到spring的IOC容器中,即可执行
10  * 当项目启动后执行run()
11  */
12 @Component
13 public class MyCommandLineRunner implements CommandLineRunner {
14 
15     @Override
16     public void run(String... args) throws Exception {
17         System.out.println("CommandLineRunner....");
18         System.out.println(Arrays.asList(args));
19     }
20 
21 }
 1 package com.haifei.springboot12listener.listener;
 2 
 3 import org.springframework.boot.ApplicationArguments;
 4 import org.springframework.boot.ApplicationRunner;
 5 import org.springframework.stereotype.Component;
 6 
 7 import java.util.Arrays;
 8 
 9 /**
10  * 利用注解@Component将该实现类MyCommandLineRunner注册到spring的IOC容器中,即可执行
11  * 当项目启动后执行run()
12  *
13  * 应用场景:redis缓存预热
14  */
15 @Component
16 public class MyApplicationRunner implements ApplicationRunner {
17 
18     @Override
19     public void run(ApplicationArguments args) throws Exception {
20         System.out.println("ApplicationRunner.....");
21         System.out.println(Arrays.asList(args.getSourceArgs()));
22     }
23 
24 }
 1 package com.haifei.springboot12listener;
 2 
 3 import org.springframework.boot.SpringApplication;
 4 import org.springframework.boot.autoconfigure.SpringBootApplication;
 5 
 6 @SpringBootApplication
 7 public class Springboot12ListenerApplication {
 8 
 9     public static void main(String[] args) {
10         SpringApplication.run(Springboot12ListenerApplication.class, args);
11     }
12     
13 }

 

 

 


 

 (2)

 

 

 

 

 

 


 (3)

1 org.springframework.context.ApplicationContextInitializer=com.haifei.springboot12listener.listener.MyApplicationContextInitializer

 

 

 

 

 


 (4)

1 org.springframework.context.ApplicationContextInitializer=com.haifei.springboot12listener.listener.MyApplicationContextInitializer
2 
3 org.springframework.boot.SpringApplicationRunListener=com.haifei.springboot12listener.listener.MySpringApplicationRunListener

 

 (5)


 1 package com.haifei.springboot12listener.listener;
 2 
 3 import org.springframework.boot.ConfigurableBootstrapContext;
 4 import org.springframework.boot.SpringApplication;
 5 import org.springframework.boot.SpringApplicationRunListener;
 6 import org.springframework.context.ConfigurableApplicationContext;
 7 import org.springframework.core.env.ConfigurableEnvironment;
 8 import org.springframework.stereotype.Component;
 9 
10 //@Component
11 public class MySpringApplicationRunListener implements SpringApplicationRunListener {
12 
13     //提供构造方法
14     public MySpringApplicationRunListener(SpringApplication application, String[] args){
15 
16     }
17 
18     @Override
19     public void starting(ConfigurableBootstrapContext bootstrapContext) {
20         System.out.println("starting...项目启动中");
21     }
22 
23     /*@Override
24     public void starting() { //已过时
25 
26     }*/
27 
28     @Override
29     public void environmentPrepared(ConfigurableBootstrapContext bootstrapContext, ConfigurableEnvironment environment) {
30         System.out.println("environmentPrepared...环境对象开始准备");
31     }
32 
33     /*@Override
34     public void environmentPrepared(ConfigurableEnvironment environment) { //已过时
35 
36     }*/
37 
38     @Override
39     public void contextPrepared(ConfigurableApplicationContext context) {
40         System.out.println("contextPrepared...上下文对象开始准备");
41     }
42 
43     @Override
44     public void contextLoaded(ConfigurableApplicationContext context) {
45         System.out.println("contextLoaded...上下文对象开始加载");
46     }
47 
48     @Override
49     public void started(ConfigurableApplicationContext context) {
50         System.out.println("started...上下文对象加载完成");
51     }
52 
53     @Override
54     public void running(ConfigurableApplicationContext context) {
55         System.out.println("running...项目启动完成,开始运行");
56     }
57 
58     @Override
59     public void failed(ConfigurableApplicationContext context, Throwable exception) {
60         System.out.println("failed...项目启动失败");
61     }
62 }

 

 


2 springboot中的事件(源码)

 

 

 

 

 

 

 

 springboot的事件实质就是对java事件的封装

 

posted @ 2021-08-02 16:10  yub4by  阅读(254)  评论(0)    收藏  举报