当前位置 博文首页 > u011767319的博客:springboot - 个人笔记

    u011767319的博客:springboot - 个人笔记

    作者:[db:作者] 时间:2021-09-22 12:44

    如何发生事件呢

    首先创建一个事件
    例子:用户数据更新

    package app.woya.service.app.event;
    
    import org.springframework.context.ApplicationEvent;
    
    public class UserUpdateEvent extends ApplicationEvent {
    
        private Long userId;
    
        public UserUpdateEvent(Long userId) {
            super(userId);
            this.userId = userId;
        }
    
        public Long getUserId() {
            return userId;
        }
    
        public void setUserId(Long userId) {
            this.userId = userId;
        }
    }
    
    

    发生事件

    @Resource
    private ApplicationEventPublisher applicationEventPublisher;
    
    //发起用户更新事件
    applicationEventPublisher.publishEvent(new UserUpdateEvent(userProfile.getUserId()));
    

    监听事件

    package app.woya.service.app.event.listener;
    
    import app.woya.lib.user.api.v1.ChatWithApiService;
    import app.woya.service.app.event.UserUpdateEvent;
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.context.event.EventListener;
    import org.springframework.stereotype.Component;
    
    import javax.annotation.Resource;
    
    @Component
    @Slf4j
    public class UserUpdateListener {
    
        @Resource
        private ChatWithApiService chatWithApiService;
    
        @EventListener
        public void updateUserDate(UserUpdateEvent userUpdateEvent) {
            //用户数据更新,更新用户的陪聊设置
            chatWithApiService.updateEnable(userUpdateEvent.getUserId());
        }
    
    }
    
    cs