【SpringBoot基础】事件监听 注解实现

【SpringBoot基础】事件监听 注解实现

    • 内容概要
    • 环境jar包
    • 文件结构
    • 事件类 AppEvent
    • 事件监听类 EventListener
    • 事件发布类 EventPublisher
    • 配置类EventConfig
    • 测试类 Main
    • 输出结果

内容概要

在spring注解环境中实现,事件监听实例。

环境jar包

	jdk: jdk1.8.0_121(32位)
	pom:
		 
            org.springframework
            spring-context
            5.0.10.RELEASE
        

文件结构

【SpringBoot基础】事件监听 注解实现_第1张图片

事件类 AppEvent

package Listener;

import org.springframework.context.ApplicationEvent;
//继承 事件监听类
public class AppEvent extends ApplicationEvent {
	//接收内容
    private String message;
	//获得 Source
    public AppEvent(Object source,String name) {
        super(source);
        this.message = name;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String dataSource) {
        this.message = dataSource;
    }
}

事件监听类 EventListener

package Listener;

import org.springframework.context.ApplicationListener;
import org.springframework.stereotype.Component;
//组件注解
@Component  
//实现监听接口
public class EventListener implements ApplicationListener<AppEvent> {
	//监听处理
    public void onApplicationEvent(AppEvent event) {
        String  message = event.getMessage();
        System.out.println("收到消息:"+message);
    }
}

事件发布类 EventPublisher

package Listener;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;

@Component //注解
public class EventPublisher {
    @Autowired //获取Spring容器
    private ApplicationContext context;
	//使用容器发布消息
    public void  publish(String message){
        context.publishEvent(new AppEvent(this,message));
    }
}

配置类EventConfig

package Listener;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
//配置类
@Configuration
@ComponentScan("Listener") //扫描Listener下的bean
public class EventConfig {
}

测试类 Main

package Listener;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Main {

    public static void main(String [] args){
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(EventConfig.class);
        EventPublisher eventPublisher = context.getBean(EventPublisher.class);
        eventPublisher.publish("有问题!");
        context.close();
    }
}

输出结果

在这里插入图片描述

你可能感兴趣的:(SpringBoot,监听,注解,Listener,Publisher,Spring)