• Springboot事件监听实例


    创建事件源

    package com.example.demo;
    
    import org.springframework.context.ApplicationEvent;
    import org.springframework.stereotype.Component;
    
    /**
     * @author lyd
     * @Description: 创建事件发布对象实体
     * @date 2021/6/1818:14
     */
    
    public class PushEvent extends ApplicationEvent {
    
    	private String msg;
    
    	public PushEvent(Object source, String msg) {
    		super(source);
    		this.msg = msg;
    	}
    
    	public String getMsg() {
    		return msg;
    	}
    
    	public void setMsg(String msg) {
    		this.msg = msg;
    	}
    }
    

    创建两个监听器

    package com.example.demo;
    
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.context.event.EventListener;
    import org.springframework.stereotype.Service;
    
    /**
     * @author lyd
     * @Description: 监听者1
     * @date 2021/6/1818:16
     */
    @Slf4j
    @Service
    public class EventListenerOne {
    
    	@EventListener
    	public void enentListener(PushEvent pushEvent) {
    		log.info(this.getClass().getSimpleName() + "监听到数据:" + pushEvent.getMsg());
    	}
    
    
    }
    
    package com.example.demo;
    
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.context.event.EventListener;
    import org.springframework.stereotype.Service;
    
    /**
     * @author lyd
     * @Description: 监听者2
     * @date 2021/6/1818:16
     */
    @Slf4j
    @Service
    public class EventListenerTwo {
    
    	@EventListener
    	public void enentListener(PushEvent pushEvent) {
    		log.info(this.getClass().getSimpleName() + "监听到数据:" + pushEvent.getMsg());
    	}
    
    
    }
    

    发布事件

    package com.example.demo;
    
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.context.ApplicationEvent;
    import org.springframework.context.ApplicationEventPublisher;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    
    /**
     * @author lyd
     * @Description: 测试类
     * @date 2021/6/1818:31
     */
    @Slf4j
    @SpringBootApplication
    @RestController
    public class TestDemo {
    
    	@Autowired
    	private ApplicationEventPublisher  applicationEventPublisher;
    
    
    	@RequestMapping("publish")
    	public void publish() {
    
    		String msg = "哟哟";
    		log.info("发送哟哟:" + msg);
    
    		ApplicationEvent event = new PushEvent(this, msg);
    		applicationEventPublisher.publishEvent(event);
    
    	}
    
    
    }
    

    启动服务器,访问路径 http://localhost:8080/publish

  • 相关阅读:
    挂载银行前置机Ukey到windows server2012虚拟机的操作记录
    LVS负载均衡下session共享的实现方式-持久化连接
    Centos6.9下RabbitMQ集群部署记录
    Linux下绑定网卡的操作记录
    Redis Cluster集群知识学习总结
    Redis Cluster日常操作命令梳理
    android Unable to inflate view tag without class attribute
    java / android int类型如何判空?
    Android 倒计时按钮,倒计时发送短信验证码…
    Android 自定义View
  • 原文地址:https://www.cnblogs.com/lyd447113735/p/14915046.html
Copyright © 2020-2023  润新知