2019-11-25 10:44
@zzutligang 严格来说,业务层无状态是指:你的业务 class 里没有属性,或者只有 final 属性,例如:
public class MyService {
final int value = 123;
}
上面的 MyService 有一个 final 属性,是可以多线程共享的。或者上面的 MyService 没有属性,也可以称之为无状态
如果不严格来说,业务层无状态是指:你的业务 class 里面没有属性,或者只有无状态属性,例如:
public class MyService {
OtherService otherService;
}
上面的 MyService 有一个 OtherService 属性,如果它是无状态的,那么 MyService 也是无状态的
简单总结无状态就是:无属性或者只有无状态属性
状态这个词你简单理解为类的属性就好
2019-11-25 10:38
@jounzhang 在 BaseController 里面不断追加适用于自己项目的方法是最好的,jfinal 迭代开源八年多了,很多东西不方便动,兼容性很重要
好在 jfinal 的设计一开始就是极简,这八年来核心设计从来没有变动过,迭代主要在一些小地方进行
2019-11-23 16:28
@zzutligang 单例必须考虑线程安全问题,一般业务层做成无状态的,天然就是线程安全的即可
你可以在不能是 singleton 的 service 上用注解来解决,例如:
@Singleton(false)
public class BlogService {
...
}
2019-11-23 14:51
jfinal 为了极致性能,是将所有路由在项目启动的时候一次性初始化的,不支持动态路由
@海哥 对 jfinal 有扩展过这个功能,可以看看他的 #jboot 项目:
https://gitee.com/fuhai/jboot