转载

JFinal-event v2.2.2 发布,支持JFinal 3.5 新版本inject

JFinal-event 2.x 参考Spring 4.2.x中Event的使用方式而生,为JFinal用户带来更多方便。

更新情况:

2018-10-09 v2.2.2

升级到jfinal 3.5 (不兼容老版本)支持新版本inject,升级到java 8优化部分代码。 

DefaultBeanFactory改为jfinal 3.5 aop 创建,删除 DuangBeanFactory。 

优化 ObjenesisBeanFactory 支持jfinal 3.5 inject

2018-08-14 v2.2.1

ApplicationEvent 添加泛型,方便类型转换。

2018-04-15 v2.2.0

插件添加手动注册监听类 plugin.register(Class<?> clazz), 多个类,多次调用register方法即可。

JFinal-event 2.x的使用:

1. 初始化插件

EventPlugin plugin = new EventPlugin();
// 设置为异步,默认同步,或者使用`threadPool(ExecutorService executorService)`自定义线程池。
plugin.async();
 
// 设置扫描jar包,默认不扫描
plugin.scanJar();
// 设置监听器默认包,默认全扫描,支持;分隔多个包
plugin.scanPackage("net.dreamlu");
 
// bean工厂,默认为DefaultBeanFactory,可实现IBeanFactory自定义扩展,可扩展从IOC容器中获取
plugin.beanFactory(new ObjenesisBeanFactory());
 
// 手动启动插件,用于main方法启动,jfinal中不需要,添加插件即可。
plugin.start();
 
// 停止插件,用于main方法测试
plugin.stop();

2. 新建事件类

// 继承 ApplicationEvent
public class Test1Event extends ApplicationEvent {
    private static final long serialVersionUID = 6994987952247306131L;
        public Test1Event(Object source) {
        super(source);
    }
}

3. 编写监听

监听器可写在任何有默认构造器(无参构造器)的类(包括Controller、Model)中,如果类不能使用无参构造器初始化,请设置为 ObjenesisBeanFactory bean工厂,依赖 objenesis jar包。

public class TestListener {
	@EventListener
	public void listenTest1Event(Test1Event event) {
	    System.out.println("Test1Event:" + event.getSource());
	}
	 
	@EventListener
	public void listenTest1Event(Test2Event event) {
	    System.out.println("Test1Event:" + event.getSource());
	}
}

4. 发送事件

EventKit.post(new Test1Event("hello1"));

更多示例代码和更新记录请查看gitee中的 readme 说明。

原文  https://www.oschina.net/news/100687/jfinal-event-2-2-2-released
正文到此结束
Loading...