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消息队列中。
java 事件通告写法的更多相关文章
- C#-WebForm-WebForm开发基础、如何给控件注册事件?——事件委托写法、http无状态性、三层结构
(小知识 - xml:可扩展的标记语言 html:超文本标记语言) 一.创建WebForm:新建→网站 此时文件夹中只有一个 config 文件,打开后 二.在项目下右键添加新项 在设计页面中打开 从 ...
- Java 事件机制
java事件机制包括三个部分:事件.事件监听器.事件源. 1.事件.一般继承自java.util.EventObject类,封装了事件源对象及跟事件相关的信息,用于listener的相应的方法之中,作 ...
- java 事件监听 - 鼠标
java 事件监听 - 鼠标 //事件监听 //鼠标事件监听 //鼠标事件监听有两个实现接口 //1.MouseListener 普通的鼠标操作 //2.MouseMotionListener 鼠标的 ...
- java 事件监听 - 键盘
java 事件监听 - 键盘 //事件监听 //键盘事件监听,写了一个小案例,按上下左右,改变圆形的位置,圆形可以移动 import java.awt.*; import javax.swing.*; ...
- java 事件监听 - 控件
java 事件监听 //事件监听 //事件监听,写了一个小案例,点击按钮改变面板的颜色. import java.awt.*; import javax.swing.*; import java.aw ...
- jquery实现拖拽以及jquery监听事件的写法
很久之前写了一个jquery3D楼盘在线选择,这么一个插件,插件很简单,因为后期项目中没有实际用到,因此,有些地方不是很完善,后面也懒得再进行修改维护了.最近放到github上面,但是也少有人问津及s ...
- JavaScript编程:java事件模型
3.java事件模型: 传统事件处理程序指派方法: 1.var odiv=document.getElementById("div1"); ...
- JAVA事件监听机制学习
//事件监听机制 import java.awt.*; import java.awt.event.*; public class TestEvent { public static void mai ...
- java事件监听机制
1.简单的事件监听 package demo2; /* * java事件监听机制 */ import java.awt.*; import javax.swing.*; import java.awt ...
随机推荐
- Windows平台编译SQLite 3
由于需要sqlite的x64版本只能自己编译,下载sqlite源代码.sqlite.def.Visual Studio 2013新建一个Visual C++ Empty Project,Configu ...
- 【BZOJ1417】Pku3156 Interconnect 记忆化搜索
[BZOJ1417]Pku3156 Interconnect Description 给出无向图G(V, E). 每次操作任意加一条非自环的边(u, v), 每条边的选择是等概率的. 问使得G连通的期 ...
- eclipse打断点只进入class文件中的解决办法
内容来源 https://www.cnblogs.com/scode2/p/8671908.html#undefined 是由于对应的Java类跟编译后的class文件,没有关联上, 解决办法: 在打 ...
- springmvc如何访问到静态的文件,如jpg,js,css
如何你的DispatcherServlet拦截"*.do"这样的有后缀的URL,就不存在访问不到静态资源的问题. 如果你的DispatcherServlet拦截"/&qu ...
- sublime添加到鼠标右键打开文件的方法?
步骤: 1.win+R 打开运行,并输入regedit. 2.在左侧依次打开HKEY_CLASSES_ROOT\*\shell 3.在shell下新建“Sublime Text”项,在右侧窗口的“默认 ...
- 8.27 jQuery
2018-8-27 19:38:06 jQuery 参考http://www.cnblogs.com/liwenzhou/p/8178806.html jQuery练习题和 .js文件在Github ...
- Ubuntu 14.04 配置 LAMP+phpMyAdmin PHP开发环境!
先安装 Apache Web服务器,终端:sudo apt-get install apache2 apache2-doc,然后测试是否安装成功.浏览器地址栏输入:http://l ...
- Spark Streaming 在数据平台日志解析功能的应用
https://mp.weixin.qq.com/s/bGXhC9hvDj4lzK7wYYHGDg 目前,我们使用Filebeat监控日志产生的目录,收集产生的日志,打到logstash集群,接入ka ...
- 获取linux工具命令源码
总结: 通过先通过which找到命令路径path rpm -qf path 获取源码名称n rpm -qi n 获取源码地址 [root@d mongoexport]# rpm --helpUs ...
- mybatis-3 cache 源码赏析
总结: 从缓存策略源码,可以分析java相关类库 mybatis-3/src/main/java/org/apache/ibatis/cache/decorators/SoftCache.java p ...