springboot源码之监听器使用

混江龙づ霸主 提交于 2020-02-15 02:01:53

介绍一下监听器的三种使用方式

 

第一种: 实现ApplicationListener接口后配置在spring.factories文件中

package com.jun.lee.listener;

import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.context.event.ApplicationStartingEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

/**
 * <Description>
 * 第一种实现方式
 * @author Jun Lee
 * @version 1.0
 * @createDate 2020/02/14 12:48
 * @see com.jun.lee.listener
 */
@Component
@Slf4j
@Order(1)
public class FistListener implements ApplicationListener<ApplicationStartingEvent> {
    @Override
    public void onApplicationEvent(ApplicationStartingEvent event) {
        System.out.println("Run FistListener");
    }
}
org.springframework.context.ApplicationListener=com.jun.lee.listener.FistListener

 

 

第二种: 实现ApplicationListener接口后在启动类中硬编码的方式

package com.jun.lee.listener;

import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.context.event.ApplicationStartingEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.core.annotation.Order;

/**
 * <Description>
 * 第二种实现方式
 * @author Jun Lee
 * @version 1.0
 * @createDate 2020/02/14 12:48
 * @see com.jun.lee.listener
 */
@Slf4j
@Order(2)
public class SecondListener implements ApplicationListener<ApplicationStartingEvent> {
    @Override
    public void onApplicationEvent(ApplicationStartingEvent event) {
        System.out.println("Run SecondListener");
    }
}
package com.jun.lee;

import com.jun.lee.initializer.SecondInitializer;
import com.jun.lee.listener.SecondListener;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class App {

	public static void main(String[] args) {
		SpringApplication application = new SpringApplication(App.class);
		application.addInitializers(new SecondInitializer());
		application.addListeners(new SecondListener());
		application.run(args);
	}


}

 

 

第三种: 实现ApplicationListener接口后 配置在properties中的方式

package com.jun.lee.listener;

import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.context.event.ApplicationStartedEvent;
import org.springframework.boot.context.event.ApplicationStartingEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.core.annotation.Order;

/**
 * <Description>
 * 第三种实现方式
 * @author Jun Lee
 * @version 1.0
 * @createDate 2020/02/14 12:48
 * @see com.jun.lee.listener
 */
@Slf4j
@Order(3)
public class ThirdListener implements ApplicationListener<ApplicationStartedEvent> {
    @Override
    public void onApplicationEvent(ApplicationStartedEvent event) {
        System.out.println("Run ThirdListener");
    }
}
context.listener.classes=com.jun.lee.listener.ThirdListener,com.jun.lee.listener.FourthListener

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!