2018-11-13 22:02

加入俱乐部 看使用事例: http://www.jfinal.com/club

2018-11-13 22:00

配置一下就可以了:

@Override
public void configHandler(Handlers me) {
me.add(new DruidStatViewHandler("Druid WebStatFilter的请求地址", new IDruidStatViewAuth() {
public boolean isPermitted(HttpServletRequest request) {
return //权限校验通过 true;
}
}));

2018-11-13 15:15

@hotsmile 新增后, 清除一下缓存, 不就可以了么? 还是你这有其他业务?

2018-11-03 11:13

@JFinal 老大 换成 undertow后, 可以直接在线上装个JDK后, 就进行使用了对吧?

2018-10-21 09:54

Java8引入一个effectively final的概念,当内部类访问外部类变量时,只要内部类不对外部变量重新赋值,那么外部类变量就是一个事实上的final变量,Java会隐含地将外部变量声明为final 。不用我们显式的添加final标识了,实际上它还是final类型的,是编译器自动帮我们加上了而已。如果你试图改变它的值,它还是会报错的(以上粘自csdn)。说明你以前用的是Java7 -

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");
}