2018-03-30 20:20

Service层里业务需要手动调取:
ApiConfigKit.setThreadLocalAppId(appId); 手动绑定到当前线程
AccessTokenApi.getAccessTokenStr() 返回值
ApiConfigKit.removeThreadLocalAppId();手动释放

通过URL API控制器调取:
只要@Before(ApiInterceptor.class 就能自动根据URL挂参appId(默认可修改)=xxx
Controller 自动绑定 ApiConfig 对象到当前线程, 和释放
所以后面代码能直接调用 AccessTokenApi.getAccessTokenStr()

2018-03-30 09:25

save之前先删一下id
cust.remove("id");

2018-03-25 16:30

@ztvip71 贴码吧, 猜不出来, 你试试设置 scheduler.setDaemon(true);

2018-03-23 22:19

默认JFinalJson工具转 model 时 是不支持自定义属性的,

if (value instanceof Model) {
Map map = com.jfinal.plugin.activerecord.CPI.getAttrs((Model)value);
return mapToJson(map, depth);
}
if (value instanceof Record) {
Map map = ((Record)value).getColumns();
return mapToJson(map, depth);
}

/** com.jfinal.plugin.activerecord.CPI.getAttrs
* Return the attributes map of the model
* @param model the model extends from class Model
* @return the attributes map of the model
*/
@SuppressWarnings({"unchecked", "rawtypes"})
public static final Map<String, Object> getAttrs(Model model) {
return model._getAttrs();
}


所以正确的姿势 >> 你要改为:
public class Node extends BaseNode<Node> {

public String getDeviceChannel() {
return get("deviceChannel");
}
public void setDeviceChannel(String deviceChannel) {
put("deviceChannel ", deviceChannel)
}
}

如果deviceChannel 是数据库的字段就用 set("deviceChannel", deviceChannel)
不是数据库的字段就用put(xx)

2018-03-22 21:04

看调用量呗, 非常低就直接数据库了呗 , 如果有些频繁 就用 jfinal集成的EhCache整整呗 , 还有 jfinal-weixin 里面 static IAccessTokenCache 默认就是用的 Map , 同时开发者可以自由选择使用 EhCache 或者Redis 或是自己实现的

2018-03-22 20:52

@lyh061619 javaweb 最牛逼的是 可以用 java

2018-03-22 10:58

这样说, 貌似想起了, 记得是浏览器自动请求 缓存成快捷图标 的那个梗吧 ?

2018-03-21 22:37

不贴代码 .. 能猜出来才怪.... 提问题时还是需要站在别人的角度看下吧 ..
我猜有可能是你 tomcat 配的有问题 :
JFinal 部署在 Tomcat 下推荐方法
"记住第一点,永远不要将项目放在 TOMCAT_HOME/webapps 目录下面"

2018-03-21 19:45

Model 建的有问题吧 , 需要使用 jfinal的生成器生成, eclipse生成的那个不一样 this.xx=xx 和 set('xx',xx)

2018-03-15 15:02

多看下手册, 再搞代码,7.5 CacheKit
这样的QA帖子要放在 “反馈”模块的