2018-10-09 21:27

用到的核心点 有:
implements IPlugin
extends URLClassLoader (管理Class生命周期)
extends ActionHandler (热切换路径映射)
extends ActionMapping(路径映射)
Routes(路径映射)
extends Record (对数据库表映射的对象增加get set 字段(有Db+Record就不想做Model的映射动态管理...))
等几个类完成了 Action 与 业务代码 的更新与卸载 ~

2018-10-09 21:10

刚好我们公司年中旬已经开始做这个平台了(内部项目加班和周末写点代码...), 目前已经在开始内部商用了, 等平台迭代稳定后会进行开源 : )
目前功能有:
1应用商店(管理插件应用), 进度 60%.(UI刚动工, 后台主体流程已完成)
2开发者后台(负责源码的开发与提交), 进度 100%(main方法一键提交~)
3测试人员的后台(回归测试与发布), 进度 70%(还差数据库的回滚)
4用户端应用的管理(安装, 更新(可选自动更新), 卸载) , 进度 80%(UI还差点).
UI使用 layui + vue(┬_┬)当模版用...

有兴趣的可以私信我, 一起参与, 争取早日完成~

2018-09-30 00:21

@小路哥 可以的, 注意字体安装在 java 的 jre\lib\fonts 里面, JSON的 font" : {"name": 你字体的名字如:"宋体" 就可以了

2018-09-26 21:40

方法2:

@SuppressWarnings("serial")
public class MyException extends Exception {

public void init(Exception e) {
try {
// 此处 拿到异常, 存为属性 或者自定义其他 操作, 都可以, 看业务

} catch (Exception ie) {
}
}
};
使用:
final MyException myE = new MyException();
boolean tx = Db.tx(new IAtom() {
@Override
public boolean run() throws SQLException {
try {
// 你的数据库 操作

return true;
} catch (Exception e) {
myE.init(e);
return false;
}
}
});
if (!tx) {
// 这里就可以拿到自己的异常了
throw myE;
}

2018-09-26 21:23


abstract class MyIAtom implements IAtom {
public Exception myException = null;
};
MyIAtom myIAtom = new MyIAtom() {
@Override
public boolean run() throws SQLException {
try {
// 你的数据库 操作

return true;
} catch (Exception e) {
myException = e;
return false;
}
}
};
boolean tx = Db.tx(myIAtom);
if ( ! tx) {
// 这里就可以拿到异常了,自己转换一下 myIAtom.myException
System.out.println(myIAtom.myException.getMessage());
}

2018-09-26 09:15

报名~ 就想我说需求, 它自己敲码那种...然后我频繁的变更需求, 它还不能打我,,,,

2018-09-25 22:18

5 0 1 * *
http://www.jfinal.com/doc/9-2

2018-09-20 20:35

PS:如果有用到 数据库和缓存等插件时 这样写就可以了

private void init() {
log.info("----------------启动测试配件--------------------");
Plugins me = new Plugins();
new YouConfig().configPlugin(me);
for (IPlugin iPlugin : me.getPluginList()) {
iPlugin.start();
}
log.info("----------------测试配件启动成功--------------------\r\n\r\n");
}

2018-09-14 21:45

@netwild
http://www.jfinal.com/doc/6-3
5、静态方法调用
#if(com.jfinal.kit.StrKit::isBlank(title))
....
#end

2018-09-13 18:20

@JFinal 还是JFinal Template强!

2018-09-13 09:04

getModel(class, true)

多看文档: http://www.jfinal.com/doc/3-5

多看下 源码 :
https://gitee.com/jfinal/jfinal/blob/master/src/main/java/com/jfinal/core/Controller.java

2018-09-12 09:26

@枫 必须啊, 水印可以是文字还可以是LOGO图片的

2018-09-03 21:51

@年轻似水 业务不需要 秒级任务的话, 建议使用http://www.jfinal.com/doc/9-2 内置的Cron4jPlugin 更轻, 简洁

2018-08-31 08:50

@nbjgl http://www.jfinal.com/doc/5-15 new DruidPlugin(...).start();