jfinal想用到中大型项目中 求项目经验分享

fairyhawk 发布于 2014/07/18 15:27
阅读 15K+
收藏 5

@JFinal 你好,想跟你请教个问题:

jfinal快速开发很好用,我们做了2个小项目用jfinal已经上线了。

很多人可能犹豫使用jfinal是怕在大一些的项目中会遇到的问题。做项目考虑风险可控嘛。

如果出一个中大型项目的雏形demo供大家参考,jfinal项目组一直在用应该对很多人有启发。

1.项目的基本结构。

2.多一些项目集成其他的组件总结。




加载中
2
JFinal
JFinal

   jfinal 用在大项目中更加方便实用,节省无数的开发时间,代码量相对 SSH 减少 75% 至 90%,对于项目结构来说,简单提以下几点:

1:先分大模块,大模块内部可以根据划分的model分成子包。也可以更扁平化:直接根据model划分子包。

2:包内部至少是 MVC 结构,业务写在Model中而不要写在Controller中。也可以引入Service 层,那么该包内部就如同样的类文件:UserController、UserService、User、UserValidator、UserInterceptor。

3:视图文件放在webapps下面,针对于每个源代码下的子包,如 com.user、com.blog 建立相应的view子目录 user、blog,最好在这些目录上一级创建一个父目录,如 view

4:架构风格建议是 restful,例如,你有 user、blog、account 这几个领域模型即model,在 url 或者说是api请求的风格设计上先将这些抽象成资源,剩下来的一些事情只不过是对这些资源的操作。例如  /user/save、/user/update、 /account/trans?from=lisa&to=james&cash=999999

5:在restful架构风格中,有时候领域可能是某个抽象概念,或许有数据库表与之对应,或许没有,但也一样是抽象成资源,对其的操作结果在没有数据库表的情况下会将影响施加到其它model的数据库表中

    总之一切皆资源,以及在资源之上的状态转换(操作)

       常见的违返 resful 风格的 api 设计,如controllerkey为  /studentManager、/blogAdmin,而actionKey 往往是这样  /studentManager/saveStudent、/studentManager/deleteStudent。简单的做法是controllerKey 即为 modelName,通常就遵守了 restful 架构风格,如 /user ---> /user/save、/user/delete/123,这里的 user 即为 modelName

超级大富
超级大富
我就是这么分层的
1
台俊峰
台俊峰

jfinal已经有很多开源项目了,如jfinal bbs等等。楼主可以找找看,参考下。

另外,jfinal做大型项目不会有问题,jfinal因为简单反而更可控。

f
fairyhawk
看了个jfinal写的bbs。那个感觉有点low..能提供个您说的bbs地址吗。
1
littleant
littleant

我们用jfinal做了一套云存储的运维系统,算是中型项目,但是处理数据的量还是很大的,已经经过N轮测试在客户现场实施了,jfinal本身应该没什么问题。

另外我业余用jfinal做了套项目基础模块的项目:JfinalUIB,实现了用户组织机构和权限的控制,可供学习使用。地址:http://my.oschina.net/dongcb678/blog/272036

红白机
红白机
才发现有这个项目,学习一下。
0
點點灬愛護
點點灬愛護
还可以用更好的页面模版 beetl 
0
gtd
gtd

引用来自“littleant”的评论

我们用jfinal做了一套云存储的运维系统,算是中型项目,但是处理数据的量还是很大的,已经经过N轮测试在客户现场实施了,jfinal本身应该没什么问题。

另外我业余用jfinal做了套项目基础模块的项目:JfinalUIB,实现了用户组织机构和权限的控制,可供学习使用。地址:http://my.oschina.net/dongcb678/blog/272036

不错!
0
首席搬砖工程师
首席搬砖工程师
jfinal是否适用业务逻辑复杂的企业级应用,项目的主要业务逻辑都写在sql中,少的一两行,多的几千行,如果采用jfinal的话,java中拼sql,可维护性太差了
首席搬砖工程师
首席搬砖工程师
回复 @JFinal : 明白,谢谢!
SkipperD
SkipperD
你自己拓展到xml下去管理也是可以的
JFinal
JFinal
jfinal activerecord 只是提供基本和全面的功能,java 中完全不需要拼接 sql,你可以将 sql 放配置文件中动态加载,jfinal-ext 这个项目就有这样的扩展,jfinal api的具体使用取决于用户
0
干死it
干死it

引用来自“open_boolse”的评论

jfinal是否适用业务逻辑复杂的企业级应用,项目的主要业务逻辑都写在sql中,少的一两行,多的几千行,如果采用jfinal的话,java中拼sql,可维护性太差了
能否用在游戏的服务端呢,有经验的说说
0
f
fairyhawk

举个场景:

mysql 一主多从的时。在代码里控制写操作用主库的key,读操作随机用从库的key

springmvc好实现。jfinal如何扩展Db类.拦截service层用Db.methord**时是使用的不同的connection·

JFinal
JFinal
jfinal activerecrod 提供了基本全面的功能,动态切换数据源可以用拦截器写点控制代码即可打完收工。另外mysql 读写做主从,最优雅的做法是通过配置让mysql实现自动化的分配,对于应用来说完全是透明的,也即写数据时自动使用主数据库,读数据时自动使用从数据库,主数据库中的数据发生变化会自动同步到从数据库,让这一切自动化,与 jfinal 无关
0
Dreampie
Dreampie
http://www.oschina.net/p/jfinal-dreampie   demo: http://www.oschina.net/p/icedog
0
暖暖的阳光ncepu

jfianl 方便又好用

返回顶部
顶部