支持@jFinal 干掉hibernate, Spring 这些烂玩意

宏哥 发布于 2012/09/27 22:54
阅读 11K+
收藏 4

【华为云1024程序员节·向云而生】预约直播 抽14件华为电子产品礼包!>>>

这些玩意又大又臭. Java社区的这些大牛们懂编程的真的不多.

支持@jFinal , 建立新的java开发框架标准

仅就以下 目标就足以作为采纳jFinal 抛弃SSH 的理由

JFinal主要特点:

  • MVC架构,设计精巧,使用简单
  • 遵循COC原则,零配置,无xml
  • ActiveRecord支持,使数据库开发极致快速
  • 自动加载修改后的java文件,开发过程中无需重启web server
  • AOP支持,拦截器配置灵活,功能强大
  • Plugin体系结构,扩展性强
  • 多视图支持,支持FreeMarker、JSP、Velocity
  • 强大的Validator后端校验功能
  • 功能齐全,拥有struts2的绝大部分功能
  • 体积小仅180K,且无第三方依赖

加载中
2
月光冷锋

以我看来,JFinal这种工具,比SSH更加轻量级,因此比较适合于小型项目。大中型项目还是建议采用轻量级Java EE框架SSH,或经典Java EE框架体系。

之所以我这么推荐,是因为JFinal某些地方真不适合大规模系统实现。比如说它简化了配置文件,但是这些配置通过硬编码机制实现,反而提高了代码间的耦合度,尤其是它这个所谓的ORM框架,简直就是“虚伪”。不但一点都没有面向领域对象编程的思想,反而污染了大量代码,使得业务层和其ORM组件代码紧密耦合。等等其他的一些缺点我不多说啦!


SundayT
SundayT
恩,还是中肯的
1
宏哥
宏哥

引用来自“一千年前的人”的答案

阅读过  @jFinal 的源码, 并深入试用过。 确实很棒。

一般来说, 判断一个东西好不好, 可以通过 它的设计目标, 以及实现路径两个方面来查看

我没有用过, 也没有看过代码,从 可见度量(180K), 以及各个设计目标,可以看出, 应该不错, 哪怕有些问题,

因为本身没有过度复杂化, 都容易解决.

我现在用的PHP基础框架代码,大概300K 源代码, 压缩后大小.

1
not_empty
not_empty
jfinal 跟springMvc 还是差了 一大截
漫步空中
漫步空中
差的那一截大概有些什么东西呢?
0
一千年前的人
一千年前的人
阅读过  @jFinal 的源码, 并深入试用过。 确实很棒。
0
JFinal
JFinal
多谢 @宏哥 捧场,现在关注与使用 @JFinal 的人越来越多了,就开源六个月的情况来看,我非常有信心 
0
宏哥
宏哥

引用来自“JFinal”的答案

多谢 @宏哥 捧场,现在关注与使用 @JFinal 的人越来越多了,就开源六个月的情况来看,我非常有信心 

dialect 只能作为折中的 和 普适操作的解决方法, native的支持还是非常重要.

数据库本质上有很多不兼容的地方.

0
绝望的八皮
绝望的八皮

作为一个Jfinal的使用者来顶一个~

jfinal微内核,高扩展,省代码。虽然目前jfinal的组件还不够多,但是内核已经提供了足够的全面的扩展点,那么开发者们就可以根据自己的需求去扩展。

比如我自己也做了一些quartz jms的plugin。 https://github.com/b1412/jfinal-ext 

jfinal让开发者很容易就去自我发挥。

 

0
JFinal
JFinal

引用来自“宏哥”的答案

引用来自“JFinal”的答案

多谢 @宏哥 捧场,现在关注与使用 @JFinal 的人越来越多了,就开源六个月的情况来看,我非常有信心 

dialect 只能作为折中的 和 普适操作的解决方法, native的支持还是非常重要.

数据库本质上有很多不兼容的地方.

dialect 中的sql也是纯 sql,只是不同的数据库 sql 有差异,为了支持各种不同的库,才引入 dialect。此 dialect 与 hibernate 不同,hibernate 为了支持所谓的切换数据库引入了HQL,而jfinal的 dialect则不支持这种切换,jfinal 看来没有必要 :)
0
宏哥
宏哥

引用来自“JFinal”的答案

引用来自“宏哥”的答案

引用来自“JFinal”的答案

多谢 @宏哥 捧场,现在关注与使用 @JFinal 的人越来越多了,就开源六个月的情况来看,我非常有信心 

dialect 只能作为折中的 和 普适操作的解决方法, native的支持还是非常重要.

数据库本质上有很多不兼容的地方.

dialect 中的sql也是纯 sql,只是不同的数据库 sql 有差异,为了支持各种不同的库,才引入 dialect。此 dialect 与 hibernate 不同,hibernate 为了支持所谓的切换数据库引入了HQL,而jfinal的 dialect则不支持这种切换,jfinal 看来没有必要 :)

是的. 早先我对openbravo 挺有兴趣, 结果发现他们用hibnerate, 就知道他们死路一条了.

我自己做的insert 接口是这样的, 直接返回ID 或者多个column值就是mysql 不支持的

今天有人和我说, 他严格要求只用prepare statement, 也是非常好的路径. 严格一致的定义了数据库访问方法.

 

    /**
     * Insert into table from Array Data, and return column[s], ID is return by default
     * @param String $table_name Table Name
     * @param Array $data Array Data Of key value pairs.
     * @param String/Array $return_cols Return column[s], 'id' is return by default
     * @param String $db Instance name of DB Connection
     * @return Boolean/Record  True if success without return column, False if failed, value of column[s] if return_cols presented.
     */
    public static function insert_table($table_name,$data,$return_cols='id',$db='default')

savior-guo
savior-guo
最看不来有些人说这不好说那不好的。框架而已,因人而异,既然存在就有他的优点不是吗?要是自己有本事就做一个每一个人都好的东西出来,如果做不出来就不要乱评价
0
JFinal
JFinal

引用来自“绝望的八皮”的答案

作为一个Jfinal的使用者来顶一个~

jfinal微内核,高扩展,省代码。虽然目前jfinal的组件还不够多,但是内核已经提供了足够的全面的扩展点,那么开发者们就可以根据自己的需求去扩展。

比如我自己也做了一些quartz jms的plugin。 https://github.com/b1412/jfinal-ext 

jfinal让开发者很容易就去自我发挥。

 

谢谢支持,常来提建议,你的很多建议在jfinal 中都有体现 
返回顶部
顶部