2017-09-29 14:32
@JFinal 嗯嗯 谢谢波总的指点 。其实也知道Jfinal的扩展机制的,只是当时不知道怎么使用我自己扩展的MyTokenCache 后面看源码才发现是在constant里面set的。
2017-09-28 10:13
@谢谢各位的回复!这个问题我已经解决了,写了一个类MyTokenCache实现ITokenCache接口。然后再configConstant(Constants me){} 方法中 me.setTokenCache(new MyTokenCache());
下面是MyTokenCache 类的全部代码。有写的不恰当或需要优化的地方,烦请指出!
public class MyTokenCache implements ITokenCache {
private static final String CACHE_PREFIX = "myToken:";
@Override
public void put(Token token) {
if (null != token) {
Long expirationTime = (token.getExpirationTime() - System.currentTimeMillis()) / 1000;
ToolCache.set(CACHE_PREFIX + token.getId(), token, expirationTime.intValue());
}
}
@Override
public void remove(Token token) {
if (null != token) {
ToolCache.remove(CACHE_PREFIX + token.getId());
}
}
@Override
public boolean contains(Token token) {
return null != token && token.equals(this.get(token.getId()));
}
@Override
public List getAll() {
Set keys = ToolCache.getKeys(CACHE_PREFIX + "*");
if (keys != null) {
List list = new ArrayList<>();
for (String key : keys) {
list.add(ToolCache.get(key));
}
return list;
}
return null;
}
/**
* 获取单个token
* @param tokenId tokenId
* @return Token
*/
public Token get(String tokenId) {
if(StrKit.notBlank(tokenId)) {
return ToolCache.get(CACHE_PREFIX + tokenId);
}
return null;
}
2017-08-19 14:21
@JFinal 波总 升级3.2之后 为什么 Holder.ORDER_BY_PATTERN.matcher(sql).replaceAll("")会有这个。。我的sql语句中包含order by ,执行这个之后就把我的order by 替换了。就会报错的
2017-08-19 14:09
@JFinal 波总 顺便在问一下。现在有格式化sql 的功能吗?想去掉sql模板中的换行符。
2017-08-19 12:21
我刚才按照您的方法试了下,提示我sql文件找不到的。我现在项目情况是这样的。我要把所有的sql文件放在xx_core.jar 下的resources 下面 。我现在按照你的提示是这样写的:
arp.getEngine().setSourceFactory(new ClassPathSourceFactory());
arp.addSqlTemplate("sql/system.sql");
但是这样还是读取不到system.sql文件。另外 我的模板引擎用的是freemarker、我并没有设置engine.setBaseTemplatePath(null) 。这个有影响吗?
2017-07-31 21:31
@老贲 这是我项目中的写法 确保你的jfinal版本是3.0及以上 public static void main(String args[]) {
String webPath = System.getProperty("user.dir") + "\\xxx\\src\\main\\webapp";
JFinal.start(webPath, 9999, "/");
}