jfinal的插件怎么开发?

饶诗伟 发布于 2016/02/04 09:47
阅读 1K+
收藏 0

@JFinal 你好,想跟你请教个问题:

我现在已把SQL语句写到多个xml文件中,并通过一个sqlUtil工具类put到一个Map<Sring,String>里进行管理。但这样的话,我要获取sql语句就需要频繁的读取xml文件来获取。

能不能将这个sqlUtil工具栏转换成插件,声明一个static Map<Sring,String> sqlMap;在项目启动的时候就一直存在。

使用插件是不是都要 implements IPlugin、都要有构造方法、start()和stop()?

加载中
0
南宫仟秋
南宫仟秋
参考PropKit,在加载配置的时候一同加载即可,不需要插件
饶诗伟
饶诗伟
谢谢你们的指导,我试试看。
0
tinshen
tinshen

理解的没有问题,只要实现了IPlugin接口的就行了。


饶诗伟
饶诗伟
谢谢你的指导,我试试看。
0
JFinal
JFinal

     创建一个 SqlInXmlPlugin 类实现 IPlugin接口,然后在 start() 方法中加载数据,在 stop() 方法中释放资源,使用的时候在 configPlugin(Plugins me) 中这样用一下: me.add(new SqlInXmlPlugin)。

    简单来说,JFinal 只是回调了你插件的 start()与 stop() 方法而已,具体在这两个方法中要做什么操作非常自由。

   jfinal 提供了一个 com.jfinal.plugin.activerecord.Sqls.java 工具类用来管理外部 sql,只不过这个工具类管理的是 key、value 型格式的 sql,你使用的是 xml ,但是可以参考一下这个 Sqls。

    如果不想将这个功能做成插件,可以在 YourJFinalConfig 中添加一个 public void afterJFinalStart() 方法,在此方法中初始化一下你需要的工具类即可。

JFinal
JFinal
回复 @饶诗伟 : Sqls这个类支持多外部文件,可以使用Sqls.use(fileName) 来指定使用的是哪个文件中的sql,便于对sql进行分类管理,比 xml 要方便很多,少写很多代码
饶诗伟
饶诗伟
回复 @JFinal : 谢谢 谢谢
JFinal
JFinal
回复 @饶诗伟 : 必然可以处理多行啊,加外斜杠字符就打完收工了,看这里:http://my.oschina.net/u/218567/blog/160509
饶诗伟
饶诗伟
Sqls貌似处理不了多行的sql语句呢
返回顶部
顶部