zoukankan      html  css  js  c++  java
  • 极简spring 监听器使用

    maven 依赖

    <dependency>
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    

    启动类代码

    package com.example.demo;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.ApplicationArguments;
    import org.springframework.boot.ApplicationRunner;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.ApplicationEvent;
    import org.springframework.context.ApplicationEventPublisher;
    import org.springframework.context.event.EventListener;
    import org.springframework.stereotype.Component;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.HashMap;
    
    @SpringBootApplication
    public class DemoApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(DemoApplication.class, args);
        }
    
        class CustomEvent extends ApplicationEvent {
            public CustomEvent(HashMap<String, String> source) {
                super(source);
            }
        }
    
        @RestController
        final class TestController {
            @Autowired
            private ApplicationEventPublisher applicationEventPublisher;
    
            @RequestMapping("/publish")
            public String test(String message) {
                HashMap hashMap = new HashMap();
                hashMap.put("key", message);
                applicationEventPublisher.publishEvent(new CustomEvent(hashMap));
                return message + "发布成功";
            }
        }
    
        @Component
        class Test implements ApplicationRunner {
            @Autowired
            private ApplicationContext applicationContext;
            @Autowired
            private ApplicationEventPublisher applicationEventPublisher;
    
            @Override
            public void run(ApplicationArguments args) throws Exception {
                HashMap hashMap = new HashMap();
                hashMap.put("ss", "s1");
                applicationContext.publishEvent(new CustomEvent(hashMap));
                // 两种发生方式一致
                hashMap.put("ss", "s2");
                applicationEventPublisher.publishEvent(new CustomEvent(hashMap));
            }
        }
    
        @EventListener(value = CustomEvent.class)
        public void test(CustomEvent customEvent) {
            System.out.println("getUserEvent-接受到事件:" + customEvent);
        }
    
        @EventListener(value = CustomEvent.class)
        public void test2(CustomEvent customEvent) {
            System.out.println("getUserEvent2-接受到事件:" + customEvent);
        }
    }
    
    
  • 相关阅读:
    Java在处理大数据的时候一些小技巧
    大并发处理解决方案
    数据库SQL优化大总结之 百万级数据库优化方案
    DotNet中的计时器线程计时器
    System.Threading.Timer的使用技巧
    Asp.net Mvc 请求是如何到达 MvcHandler的——UrlRoutingModule、MvcRouteHandler分析,并造个轮子
    C#-结构
    @Html.ActionLink(),@Html.Raw(),@Url.Action()等
    bootstarpt-table小结
    input[ type="file"]上传文件问题
  • 原文地址:https://www.cnblogs.com/jiangdewen/p/15235339.html
Copyright © 2011-2022 走看看