2018-10-12 09:45

@lyq027 一次映射,到处适用,用起来很方便,而且避免了在 @Inject 注解参数中写死,便于将来切换实现

2018-10-12 09:22

如果 @Inject 用在接口上,下面两种方法选择其一:
1:在 @Inject 中指定被注入的实现类
@Inject(ServiceImpl.class)
Service service;

2: 事先映射好接口与实现类的关系
public void configConstant(Constants me) {
Aop.addMapping(Service.class, ServiceImpl.class);
}

然后用的时候可以像以往一样了:
@Inject
Service service;

此外,Aop.addMapping(Class, String) 第二个参数还可以是 String,那么你就可以通过外部配置文件来做映射了,例如外部配置文件中是下面这样:
Service=ServiceImpl.class

映射的时候可以这样:
Aop.addMapping(Service.class, PropKit.get("Service"));

上面的配置方法,可以通过修改配置文件来改变 Service 的实现类

2018-10-12 09:21

首先要选择是用 tomcat 还是 jetty

从异常来看你的项目中有 jetty 依赖,但你用的是 tomcat 启动,所以要将 jetty 的东西删干净

如果你用的是 Jetty ,就不能用 tocmat 来启动。同时要注意将 jetty-server 升级到 2011.8 这个版本,jfinal 升级到 3.5 版

2018-10-12 09:06

@Mr.moster jfinal 在底层就是将你的 sql + para 直接扔给 JDBC 处理的,所以只要是 JDBC 支持那 jfinal 一定就支持了

因此,用纯 JDBC 做个测试就知道原因了,具体办法是:
// 通过 jfinal 的工具类拿到 JDBC 的数据库连接
Connection conn = DbKit.getConfig().getConnection();

// 用纯 JDBC 的方法执行你自己的 sql
conn. prepareStatement(sql);
pstmt. executeQuery();

以上的 sql 参数是你的代码出异常时的那个 sql,将其复制进来即可,可能需要单步调试才能得到这个 sql

通过上面的方式你会发现,JDBC 本身不支持这条 sql,解决办法自然就出来了

2018-10-11 16:43

注意表名的大小写,以及表名前后有无空格,还要注意一下 grade 是不是 postgresql 的保留字,试着换一个表名看看会不会出这个错,用排除法定位错误

2018-10-11 11:35

升级到最新版本 jfinal 3.5 才可以

此外,jetty-server 升到 2018.11 这个版本

2018-10-11 10:53

@黑猫惊涨 由于 jfinal 3.5 支持了 action 带参功能,也就是说以前你在 BaseControlelr 中的那些带参的方法在 jfinal 3.4 的时候不是 action ,但到了 3.5 变成了 action

所以可能会出现 actionKey 冲突,因为多出来了一些 BaseController 中的 actionkey,这个正是 @NotAction 的应用场景,加上 @NotAction 极其正确的做法

2018-10-11 10:51

@从头再来 这就奇怪了,我估计是你的某个 jar 包中存在 ehcache.xml , jar 包中的也是可以读到的

2018-10-11 10:47

这个我先备望一下,感谢你的反馈

2018-10-11 10:46

RedisPlugin 有一个 getJedisPoolConfig() 方法,拿到 JedisPoolConfig对象后,直接配置里面的很多配置即可

2018-10-10 21:08

不能用,需要这个配置

2018-10-10 16:20

换用 jfinal 提供的另外两个数据源:
1:DruidPlugin
2:HikariCpPlugin

c3p0 好多年不更新了

2018-10-10 11:10

这个是典型的全局拦截器的应用场景,看一下全局拦截器的用法

此外,要注意,如果你用的是 Validator,这个东东本质也是拦截器,所以配置方式也一样

2018-10-10 11:09

主要是 eclipse 下的开发文档中提到了一个 jetty-server-xxx.jar 包,而现在 jfinal 3.5 下面的 jetty-server-2018.11.jar 还没时间打包

2018-10-10 11:07

因为这部分要为最新版本的 jfinal 3.5 做出调整,还没来得及,就先屏掉了