zoukankan      html  css  js  c++  java
  • java 事件通告写法

    使用场景:

    自己模块发生变化后可能引起其他模块变化的部分,需要添加事件通告,通知其他模块。

    使用模式:

    观察者模式

    (以User类为例)写法:

    1.创建接口:

    public interface IUserChangeListener {
        
        void delListener(User user);
        
    }

    2.创建notify处理类

    @Component("userChangeNotify")
    public class UserChangeNotify {
        private static Logger LOG = LoggerFactory.getLogger(UserChangeNotify.class);
        
        @Resource
        UserService service; 
        
        @Autowired(required=false)
        private List<IUserChangeListener> listeners;
        
        @Async
        public void notifyDel(List<Integer> ids) {
            List<User> users = service.selectUsers(ids);
            for(IUserChangeListener listener : listeners) {
                try {
                    listener.delListener(users);
                } catch (Exception e) {
                    LOG.error(ExceptionHelp.buildStackTrace(e));
                }
            }
        }
        
    }

    3.进阶-可以扔到jms消息队列中。

  • 相关阅读:
    2021年4月28日
    2021年4月18日
    2021年3月4日
    2020年11月20日
    20201112
    ThreadLocal原理分析
    git与gitlab
    DevOps与CICD简介
    代码扫描利器sonarqube
    看完小白也会使用,Android投屏神器scrcpy详细教程
  • 原文地址:https://www.cnblogs.com/guochunyi/p/5292507.html
Copyright © 2011-2022 走看看