美文网首页
spring的事件监听器

spring的事件监听器

作者: _FireFly_ | 来源:发表于2020-11-30 08:34 被阅读0次

    创建一个自定义的事件

    public class MyApplicationEvent extends ApplicationEvent {
    
        String username;
        String email;
    
        public MyApplicationEvent(Object source) {
            super(source);
        }
    
        public MyApplicationEvent(Object source, String username, String email) {
            super(source);
            this.username = username;
            this.email = email;
        }
    
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        public String getEmail() {
            return email;
        }
    
        public void setEmail(String email) {
            this.email = email;
        }
    }
    

    事件的监听

    package com.video.spring;
    
    import org.springframework.context.ApplicationEvent;
    import org.springframework.context.ApplicationListener;
    
    public class MyApplicationListener implements ApplicationListener<ApplicationEvent> {
    
    
           
        @Override      // 事件的回调方法    
        public void onApplicationEvent(ApplicationEvent event) {
            
            //spring的事件
            System.out.println("接收到的事件:" + event);
            //我们定义的事件
            if (event instanceof MyApplicationEvent) {
                MyApplicationEvent myApplicationEvent = (MyApplicationEvent) event;
                System.out.println("用户:" + myApplicationEvent.getUsername());
                System.out.println("邮箱:" + myApplicationEvent.getEmail());
            }
        }
    }
    

    在spring中注册监听器

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
           xmlns:context="http://www.springframework.org/schema/context" xmlns:c="http://www.springframework.org/schema/c"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
            https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
            <!--在spring容器中注册监听器  -->  
          <bean id="Listener" class="com.video.spring.MyApplicationListener"></bean>
         
    </beans>
    

    发送消息

    public class Demo02 {
        public static void main(String[] args) {
            ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring3.xml");
    
            // 创建事件
            MyApplicationEvent event = new MyApplicationEvent("事件内容", "james", "123@qq.com");
             //发送消息
            context.publishEvent(event);
            context.close();
        }
    }
    

    控制台打印

    相关文章

      网友评论

          本文标题:spring的事件监听器

          本文链接:https://www.haomeiwen.com/subject/qlkziktx.html