浅谈springboot2.0 监听器Listener之异步监听

声明:使用 springboot2.1.1进行测试、

Listener是JavaWeb的三大组件(Servlet、Filter、Listener)之一,JavaWeb中的监听器主要用于监听:ServletContext、HttpSession、ServletRequest 的生命周期以及属性变化;在spring中也提供了监听器公开发人员使用;

其实现原理是设计模式之观察者模式,设计的初衷是为了系统业务之间进行解耦,以便提高系统可扩展性、可维护性。Listener 主要包括定义事件、事件监听、事件发布

事件监听:

  • 同步监听:

  • 异步监听 :

下面写几个监听器的demo
/ 源码分享、
https://github.com/medoo-Ai/boot-demo

Spring Boot 2.0 以后定义的事件:

ApplicationFailedEvent:Spring Boot 启动失败时触发;
ApplicationPreparedEvent:上下文 Context 准备时触发;
ApplicationReadyEvent:上下文准备完毕的时触发;
ApplicationStartedEvent:Spring Boot 启动监听类;
SpringApplicationEvent:获取 SpringApplication;
ApplicationEnvironmentPreparedEvent:装配完参数和环境后触发的事件。

项目结构如下,pojo 如图,下面不再贴出,有不清楚请了留言或者参考GitHub源代码、

6

1、同步监听

1、模拟用户注册事件,对其进行监听、

代码步骤:
1、用户注册
2、编写controller、service业务
3、监听
456

1、用户注册事件 UserRegisterEvent

/**
 * @auther SyntacticSugar
 * @data 2018/12/12 0012上午 11:20
 */
public @Data class UserRegisterEvent extends ApplicationEvent {
   
//  user注册用户、source 事件源
    private User user;
    public UserRegisterEvent(Object source,User user ) {
   
        super(source);
        this.user=user;
    }
}

2、 controller
访问路径 user/register

@RestController
@RequestMapping("user")
public class UserController {
   
    @Autowired
    private UserService userService;
    @GetMapping("register")
    public String registerUser(@NotNull String username,@NotNull Integer age){
   
        // 返回注册  success or fail
        String msg="success";
        try {
   
            userService.registerUser(new User(username,age));
        } catch (Exception e) {
   
            msg="fail";
            e.printStackTrace();
        }
        return msg;
    }
}

3、业务UserService 接口以及实现类UserServiceImpl 、

public interface UserService {
   
    void registerUs
  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值