2019-05-02 10:23
@JFinal 波总分析非常非常到位。如果使用java代码模式会出现几个问题:
第一、sql的可读性差;(用过hibernate都知道那可读性太掺了)。
第二、使用的程序员最后连基本的sql写法都给忘了,这个是极不好,不可能写写项目就甩锅,项目维护还是需要要的(代码、数据优化)等;
第三、复杂的查询完做不了,就算做得了那性能也是无法忍受得了;
第四、增加额外的学习成本,做项目的是怕的就是产生过大的技术债务,一但技术债务形成,项目随时埋雷,最后炸得不知所措;
第五、对于开发来讲,越简单的设计和架构,维护越容易;
所以还是最原始sql写法才是最纯正的,可以做到一招吃个遍。
2019-01-08 17:04
@JFinal 这个改进提得到,波总可以考虑增强下这个应用场景的呢,然后就可以愉快的全站使用db+record,爽翻天了。^_^
2018-10-18 13:18
@panpan123 现在jfinal容器看波总代码,已经分离出来了,也就是如果想用内置的容器就加依赖包就成,所以对core没有影响,框架是留有扩展容器接口的。
2018-10-18 13:13
@JFinal 从大并发性能测试上排位:undertow->tomcat->jetty,也可考虑搞个嵌入个tomcat,适应场景是开发用内置tomcat,生产环境也用tomcat的,在windows系统下用tomcat多。
2018-10-18 13:09
@无涯 所以说嘛非jetty也可以,如用tomcat,只是官网没有实现内嵌tomcat
2018-10-18 09:10
1、其实用WebSocket,不一定用jetty来做集成,有个更简便的方法,自己做个处理器就可能无缝隙的使用WebSocket了,给出如下:
public class WebSocketHandler extends Handler {
private Pattern filterUrlRegxPattern;
public WebSocketHandler(String filterUrlRegx) {
if (StrKit.isBlank(filterUrlRegx))
throw new IllegalArgumentException("The para filterUrlRegx can not be blank.");
filterUrlRegxPattern = Pattern.compile(filterUrlRegx);
}
@Override
public void handle(String target, HttpServletRequest request, HttpServletResponse response, boolean[] isHandled) {
if (filterUrlRegxPattern.matcher(target).find())
return ;
else
next.handle(target, request, response, isHandled);
}
}
作用应该是给"^/websocket"(这个路径进行放行。)
2、做排除非action方法用@NotAction,如果想自定义一个超类完全可以自己定义,ActionHandle已开放,在做自定义处理超类时,记得在项目配置文件中配置把ActoinHandle更换下.me.setActionHandle(MyActionHandle);