2019-04-27 18:32
access_token 获取后会被 jfinal weixin 缓存 7200 秒,正好这 7200 秒是微信平台给定的该 access_token 过期时间
你的项目无需关心 access_token 的缓存问题,是自动化完成的
如果你的每次获取 access_token 是不同的值,一定是你自己的代码有问题,例如多个项目在使用你手头的同一个公众号账号
这种情况下,只要某一个应用获取到 access_token,那么之前那个 access_token 即便在 7200 内,但也会失效,这个是微信平台的行为
总之,一个公众号的账号只能一个应用使用,除非你想办法让多个应用同时共享一份 access_token,例如使用 jfinal weixin 中的 RedisAccessTokenCache
具体文档:
https://gitee.com/jfinal/jfinal-weixin/wikis/JFinal-weixin%E4%B8%AD%E7%9A%84WeixinConfig%E9%85%8D%E7%BD%AE
2019-04-27 10:32
@hen model 层抽取成独立的类似于 maven module 的东东,或者抽取成独立的项目可以 mvn install 到本地 maven 库供别的项目引用
service 层专注写业务,注意数据库查询也是放在业务层之中的,sql 可以放在外部 sql 模板文件之中,小型项目也可以放在 service 之中
model 里面不要写业务逻辑,更不要有 sql 查询,让其成为一个承载数据的容器以及与数据库表对应的一个东东
model 里面可以添加一些字段常量,以及这些常量判断的方法,例如:
public class User extends BaseUser {
// 以下三个常量为 status 字段的三种值,只允许这三个值存入数据库
public static final int STATUS_LOCK_ID = -1; // 锁定账号,无法做任何事情
public static final int STATUS_REG = 0; // 注册、未激活
public static final int STATUS_OK = 1; // 正常、已激活
// 以下是添加的一些与字段值有关的工具类方法
// 状态是否 ok
public boolean isStatusOk() {
return getStatus() == STATUS_OK;
}
// 状态为注册
public boolean isStatusReg() {
return getStatus() == STATUS_REG;
}
// 状态为锁定
public boolean isStatusLockId() {
return getStatus() == STATUS_LOCK_ID;
}
.... 其它部分省略
}
2019-04-26 11:05
@微风灬不及你 直接挪动文件位置,无需 copy:
UploadFile uf = getFile();
String newName = "/新目录/新位置/新文件名...";
uf.getFile().renameTo(new File(newName);
如果一定要 copy, 网上很多文件 copy 的源代码参考