JFinal-event 2.x 是模(cao)仿(xi)Spring 4.2 中的事件驱动而生,支持JFinal 3.1和3.1以上版本。 JFinal-event 2.x 在使用上更加简单和灵活。
你不仅不用再新建一堆Listener,还可以使用 @EventListener 注解中的 events 和 condition 属性,复用你的Event。 你现在可以将 @EventListener 写到任何能初始化的java类中,对不带默认构造器的类你需要配置为ObjenesisBeanFactory。
JFinal-event 2.0.4新特性:
- 扫描包支持用
;
分割,如:net.dreamlu.a;net.dreamlu.b
- 插件支持自定义Bean工厂,可实现IBeanFactory自定义扩展。(可实现单例Bean、IOC Bean等...自行发挥) 使用
plugin.beanFactory(new DuangBeanFactory());
默认为DefaultBeanFactory,内置有DuangBeanFactory和ObjenesisBeanFactory。
ObjenesisBeanFactory
用于将 @EventListener 写到不带无参构造器的java类, 需要添加 objenesis 的 jar 包,下载地址:
@EventListener
注解说明
@EventListener(events = Test1Event.class, order = 1, async = true, condition = "event.isExec()")
events
支持的事件类型数组,用于将事件方法定义为ApplicationEvent或者自定义父类。
public class TestXxx { @EventListener(events = Test1Event.class) public void applicationEvent(ApplicationEvent event) { String xx = (String) event.getSource(); System.out.println(Thread.currentThread().getName() + "\tsource:" + xx); }}
order
排序,数值越小越先执行,默认为Integer.MAX_VALUE
async
异步执行,需要插件开启async()或者自定义线程池。
condition
表达式条件,使用event.xxxx,event.isExec() == true
判定event的属性或者方法。
更多说明请查看: