javaweb的框架和轻量级架构解决方案

光石头 发布于 2013/09/04 10:22
阅读 6K+
收藏 27
看来oscer的讨论,我也把我的思路写出来吧.
文章的范围是 java web,并不是j2ee,主要是我很少接触EJB,对EJB没有发言权.废话少说,现在开扒.
说起java框架那是锣鼓喧天鞭炮齐鸣,纷纷色色,层次不穷,javaweb的主流框架有 spring,spring mvc,struts,hibernate,mybatis(ibatis),spring jdbc
但是ssh的臃肿,庞大复杂,难于维护的弊端越来越越明显,并不是说ssh本身有什么问题,而是开发者的素质参差不齐,使用期间造成各种各样的问题.
我也曾厌恶ssh的臃肿,从头封装自认轻量的框架,后来的教训告诉我,必须改造轮子,千万不要再造轮子.
自己造的轮子并不是说多么差劲,而是持久兼容更新,技术文档,第三方组件兼容,人员流失,技术培训等等,造成后期的成本非常之高!
就算是作者本身,1年之后,问他这行代码为什么这样写,一时间都很难回答.
所以我奉劝各位,自己做轮子可以更好的了解技术细节,业务研究很有好处,但是不要用到正式系统.
当然和国外技术大牛同等级别的人除外.

对于框架只有一句:不要造轮子,要改造轮子.

ssh的架构过于臃肿和复杂,我们追求轻量级!
我的方案是#springrain#.使用 spring mvc+spring core+spring jdbc.我只是封装了spring jdbc,使其支持ORM对象操作,其他原封未动. (ps:spring模块化较好,使用了11个spring的jar,大小5M)
核心的封装代码只有3个类,很容易就能搞明白怎么实现orm的了.(ps:等有时间了我详细写下)

#springrain#更重要的体现我的编程方法,小项目一个dao和一个service足矣,有兴趣的可以看下,也算是贫血模式的极限了吧......

权限控制使用shiro,控制到按钮级

springrain的项目介绍:http://www.oschina.net/p/springrain

加载中
1
华兹格
华兹格
jfinal 值得你拥有
galaxy58
galaxy58
+1024,绝对值得拥有
0
xmut
xmut
级联怎么处理?
光石头
光石头
自己封装service方法,你看下springrain 自带demo中代码
0
编走编想
编走编想

MyBatis 相对 Hibernate 就很轻量。在一个项目中,也不是只能用一种数据库访问技术,而是可以互相搭配着使用。Struts 早就很落伍了,很多设计和现在的思想都不相符,所以用起来复杂是很正常的。

Java 数据库方面,除了 Hibernate 和 MyBatis 还有很多别的技术框架。比如 Grails 的 GORM、Spring Data、QueryDSL、JOOQ。还有在分库分表时用到的 Hibernate Shard、阿里巴巴的 Cobar 等等

Java 的开源框架多,总体上来说是好事,当然对于新手来说会让人无从下手。

编走编想
编走编想
@joln 现在 Java Web 开发框架的一个发展方向是一站式开发,常见的有 Grails 和 Play Framework,不常见的还有 Scala 的 Lift。但是大型网站和企业应用目前还都使用传统的框架,或者部分使用这些一站式的框架
编走编想
编走编想
@joln Java web 层的框架太多了,光 MVC 就能找出一堆,你自己搜就行了
j
joln
现在不用struts用什么?
光石头
光石头
我是直接jdbc 可控性更强,http://www.oschina.net/p/springrain 简介里说了 hibernate和ibatis
0
紫电清霜
紫电清霜

我也不喜欢ssh,

江山代有框架出,各领风骚好几年,

不过ssh建立的功勋会被大家记住的。


0
专业打酱油
专业打酱油

spring mvc+spring core+spring jdbc

目前就是用的这个,也不需要orm。

足够了。

光石头
光石头
最好封装一个 orm,使用起来还是很方便的.
0
美丽不打折
美丽不打折
至少也要把spring security整合进去吧
光石头
光石头
使用了 shiro,这个更简单强大
0
黄勇
黄勇
相互交流,保持沟通。有时间一定会拜读作者的  springrain。
0
loki_lan
loki_lan
至少我认为SSH还是适合大项目大团队合作开发,维护成本不高。主要看使用者怎样用了,还是轻量级的架构灵活,轻巧,OSC就是个成功的案例。
loki_lan
loki_lan
回复 @黄勇 : 看到了,我去学习一下。
黄勇
黄勇
我也设计了一款轻量级 Java Web 框架,请指教!
0
游客
游客
guice+velocity+dbutil比你这个轻
南湖船老大
南湖船老大
这个我也在用,只是换成了HTTL
哈库纳
哈库纳
顶,这个的确轻。我目前开发的一个 开发框架也是考虑再三之后选用 Guice,不过View 曾用的是 Freemarker。 dbUtil是个好东西 赞一个。
0
光石头
光石头

引用来自“游客”的答案

guice+velocity+dbutil比你这个轻
apache的dbutils 是没有事务的.......
哈库纳
哈库纳
回复 @屁屁果 : 还是不一样的。我觉得这是主观感觉,不做深入讨论。 有时间好好看看你的springrain源码。学习学习。
光石头
光石头
回复 @哈库纳 : 呵呵,算是造轮子了......
哈库纳
哈库纳
回复 @屁屁果 : 这也算是改造轮子把。
光石头
光石头
回复 @哈库纳 : 你再搞下去 就是个山寨的spring......
哈库纳
哈库纳
回复 @屁屁果 : 嗯,这的确有可能成为一个误区,Guice的确抛弃了很多繁重的工作使其整体运行效率提升。在使用的关键地方我承认Spring和Guice不相上下。不过往往说轻量级和重量级时候会做一个整体比较。
下一页
返回顶部
顶部