zoukankan      html  css  js  c++  java
  • spring 事件使用

    1.事件定义

    import lombok.Data;
    import org.springframework.context.ApplicationEvent;
    
    /**
     * 事件定义,这里监听MsgMessage消息对象
     */
    @Data
    public class MsgApplicationEvent extends ApplicationEvent {
    
        private MsgMessage message;
    
        public MsgApplicationEvent(Object source,MsgMessage message) {
            super(source);
            this.message=message;
        }
    }

    2.事件监听

    import com.alibaba.fastjson.JSON;
    import org.springframework.context.event.EventListener;
    import org.springframework.stereotype.Component;
    
    /**
     * 事件监听,处理事件
     */
    @Component
    public class HandleEnvent {
    
        @EventListener(MsgApplicationEvent.class)
        public void handeEnvent(MsgApplicationEvent event){
            MsgMessage message= event.getMessage();
            System.out.println("消息处理事件...:"+ JSON.toJSONString(message));
        }
    }

    3.发布事件

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.ApplicationContext;
    import org.springframework.stereotype.Service;
    
    /**
     * 发布事件
     */
    @Service
    public class MsgPublishEvent {
    
        @Autowired
        ApplicationContext context;
    
        public void publishEvent(MsgMessage message){
            context.publishEvent(new MsgApplicationEvent(new Object(),message));
        }
    }

    4.使用事件

    事件使用结合具体业务注入即可

      @Autowired
        private MsgPublishEvent msgPublishEvent;
    
        @GetMapping("/test")
        @ResponseBody
        public String test(){
            MsgMessage message=new MsgMessage();
            message.setTitle("hello");
            message.setMessage("我是个消息提示哦!");
    
            msgPublishEvent.publishEvent(message);
    
            return "success";
        }
  • 相关阅读:
    action里设置session
    用Eclipse导出能直接运行的jar包
    linux下命令行运行jar文件出错
    扫描对方主机端口
    调用Axis Webservice异常: java.net.ConnectException: Connection timed out: connect
    PL/SQL 安装出现的一些问题
    调用Axis WebService异常:org.xml.sax.SAXException: Bad envelope tag: definitions
    开通博客第一天
    正则表达式
    匿名函数
  • 原文地址:https://www.cnblogs.com/huzi007/p/11676879.html
Copyright © 2011-2022 走看看