`
tianyangqi
  • 浏览: 20736 次
  • 性别: Icon_minigender_1
  • 来自: 西安
最近访客 更多访客>>
社区版块
存档分类
最新评论

Struts+Spring+Hibernate学后感

阅读更多

     最近利用时间好好的看了一下SSH,Struts,Spring,Hibernate,并且做了个小项目,我把我个人学习的感觉和理解记了下来,和大家讨论讨论,想来个抛砖引玉,希望大家多多讨论,理解的不对的地方还请直言赐教。

     Struts,负责表示层的,主要玩的就是MVC,主要的就是struts-config.xml配置文件,另外还有标签和验证。主要负责的就是把请求和回复分开,形成层状结构,便于管理。struts-config.xml就是个连线员,而每个jsp页面和每个action,其实就是servlet,就是每台电话,它们就通过它们的“电话号码”——标识符,在连线员的工作下拨通你想要的电话,也就是说跳转到你想要跳转的页面,得到你想要得到的结果页面。

     Hibernate,负责持久层,主要玩的就是ORM,对象/关系数据库映射,配置文件有hibernate.cfg.xml,还有每张表所对应的配置文件,test.hbm.xml,当然文件的名字可以变,只要在web.xml中配置好了就行了。主要是把对象和数据库表给联系起来,再也不用那JDBC直接连接数据库了,也不用重复的写statement.setString(bean.getID())等等了,可以很方便的调用hibernate所提供的方法save(),update(),remove(),find()。当然hibernate也提供了事务的管理等等。如果哪天我们想换个数据库的话,只要把配置文件修改修改,就应该没有什么问题了,而项目中的代码几乎不用重写。对了,hibernate所提供的HQL语言要替代项目中的SQL语句了。

     Spring,负责业务层,说到业务层,就是管理,Spring主要玩的就是“依赖注入”和AOP,配置文件就是applicationContext.xml。它把项目应用注入到框架里,利用AOP的面向方面管理的原理,将整个项目的代码再次分层的管理起来,它提供切入点,通知,工厂模式的机制,很清晰的管理代码。最后我们通过applicationContext.xml的配置内容调用我们所需要的业务service,同时提供事务管理,日志管理,安全管理,异常管理等等。

      我再大胆的“抛砖引玉”一下。在早期,要想用java写web项目,只能拿servlet写,因为servlet写的时候需要调用java的接口,不便于页面的编写,后来就有了jsp,基于html,在html里面嵌套java程序。后来随着项目的增大,请求和回复慢慢变得频繁起来,也就变的混乱起来,因为项目在增大,仅仅靠一个人的能力已经不能满足项目的要求了,需要分工合作,有分工就会有分歧,除非分工很明确。所以,就有这么一天,高手们发明了Struts框架,基于MVC模式,很好的将model,view,controller分成三层,使得请求和回复分开,开发变得清晰。有项目,就会有数据,要不然我们就不需要交互了。那么数据总要有个存储的地方,数据库顾名思义就是个很好的数据存储地方。早期我们就通过JDBC连接数据库,先加载DriverManager,也就是驱动程序,然后获得Connection,再得到StateMent,最后通过执行sql,如果是查询再得到ResultSet结果集。增删改查都要自己写方法,假如一个表的字段有上百个的话,那么我们要插入一条记录需要写多少代码,再如果我们想要使用不同的数据库的时候,我们又需要把多少代码重新编写。出现了这些问题后,又有那么些高人发明了Hibernate框架,从此我们程序员的生活变的美好了许多。可是web项目是越来越大,编写的代码越来越多,也慢慢的就变得混乱了,常常是修改了一处的代码而引发许多出的错误,使得我们程序员的生活又变的不那么美好了,这时候,高人又发明了Spring框架,Spring有效的将Struts和Hibernate集成起来,统一管理,使得整个web项目层次分明,而各个层次之间又是相互独立,假如哪一个模块变动了,我们需要的只是把配置文件里的配置项修改修改就可以了。真正的“高内聚,松耦合”,也就是面向对象编程的思想。

      所以,我们在开发项目的时候,可以使用这些框架,也可以不使用,照样也能完成项目的开发,所谓“条条道路通北京”嘛。框架只是给我们提供了方便,提高了项目的复用性,提高了项目的质量。

      以上就是我的学后感,希望得到大家的高见,共同学习,共同进步。

分享到:
评论
28 楼 yuantong 2009-05-13  
明天我就要学习JSF,学完JSF就学EJB,期待,。
27 楼 ximencf 2009-05-11  
万变不离其中,懂得jsp+servlet+javabean,其余的都是拓展了。
26 楼 ccxw1983 2009-04-20  
批量生产降低成本。物以稀为贵,要便宜就随大流的好
25 楼 tianyangqi 2009-04-17  
还想继续得到大家的高见,希望让我深刻的体会一下这些东西。什么时候改用这些框架?什么时候不该用这些框架?
24 楼 tianyangqi 2009-04-12  
surpass 写道

bigkai13 写道
我觉的框架更多的是给我一个开发的思想,  毕竟许多框架都是不标准的,不标准就是带来的不稳定性。 我还是跟喜欢 标准的东西,JSF和EJB可是一般地公司还是不这么看的。公司是老板说了算了

说的倒也是。不过还看公司是做产品的,还是做服务的。如果是做产品的,那决定权还真的是公司的老板,如果是做服务的话,那决定权很可能就是客户了。
23 楼 surpass 2009-04-11  
bigkai13 写道
我觉的框架更多的是给我一个开发的思想,  毕竟许多框架都是不标准的,不标准就是带来的不稳定性。

我还是跟喜欢 标准的东西,JSF和EJB


可是一般地公司还是不这么看的。公司是老板说了算了
22 楼 tianyangqi 2009-04-11  
lkjust08 写道

以前也喜欢用ssh做点小东西,练练手,用框架的确提高了开发的效率,重在是理解其原理,吸收它的精华,记得有人对说,框架是给那些菜鸟用来快速开发,提高效率。

呵呵,就是理解原理就觉得这东西当时想的很好啊,分层,然后通过配置文件相互联系起来,就好像铠甲上的甲片和连接甲片的牛皮绳一样。
21 楼 无风也飘飘 2009-04-10  
一个规范而已,把大家都知道的,正在使用的东西总结起来就成了框架。
20 楼 lkjust08 2009-04-10  
以前也喜欢用ssh做点小东西,练练手,用框架的确提高了开发的效率,重在是理解其原理,吸收它的精华,记得有人对说,框架是给那些菜鸟用来快速开发,提高效率。
19 楼 tianyangqi 2009-04-10  
shz2008bj 写道

楼主讲的好生动啊。哈哈。。框架只是工具。。基本底屋才不变的真理

多谢啦。只要能理解就行了。白猫黑猫,能抓住老鼠的就是好猫嘛。
18 楼 tianyangqi 2009-04-10  
wangxin0072000 写道

其实用struts和hibernate,我认为就是为了代码规范。特别是struts完全是可有可无的,就是因为有你们这样的新手,所以才用。用框架,是因为如果不用,你的code会写的很恶心,别人很难维护,而为什么用了框架,就好维护了呢?是因为框架有很多约定俗成的书写方式。使用了很多设计模式,利于后期的维护与扩展。总而言之,因为java语言固有的弱点和刚入门的初级java程序员太多,所以逼的公司用流行框架。=》好招人,好辞人,好维护。仅此而已。

这位前辈教训的很对。不过话说回来,框架也不全是为了新手才制定的吧,要不然,我们新手就真的是太幸福了,竟然让java社区以及sun公司为我们服务了。其实高手之间也是有编程的差异的嘛,这点应该不假吧,现在讲究的是团队合作了,像比尔盖茨一人打天下,像马云想到了一个阿里巴巴,像马化腾弄出了一个QQ,这种个人主义英雄时代已经不流行了。所以为了团队开发,为了开发的工作效率,为了尽快的开发出更大更综合更强大更健壮的应用软件来,还是用框架比较好啊。
    所以说,并没有谁逼着公司必须要用框架,不过是公司为了更好的效益才采用框架的而已。新手固然可怜,但是并不可悲;新手固然卑微,但是并不卑贱;新手固然笨拙,但是并不笨蛋。几年之后,新手也是高手,所谓闻道有先后,术业有专攻,新手老手,低手高手,如此而已。
17 楼 tianyangqi 2009-04-09  
Ivan_Pig 写道

SSH,不过是使你从代码堆里跳到xml文件堆里罢了~~~~ 然后再向注解堆里面跳....

就是因为跳到了XML中,所以程序变动了,就在配置文件里修改,比较方便吧。
16 楼 tianyangqi 2009-04-09  
banrui 写道

SSH还是比较好用

15 楼 shz2008bj 2009-04-09  
楼主讲的好生动啊。哈哈。。框架只是工具。。基本底屋才不变的真理
14 楼 netbuddy 2009-04-08  
就是规范+约束
13 楼 wangxin0072000 2009-04-08  
其实用struts和hibernate,我认为就是为了代码规范。特别是struts完全是可有可无的,就是因为有你们这样的新手,所以才用。用框架,是因为如果不用,你的code会写的很恶心,别人很难维护,而为什么用了框架,就好维护了呢?是因为框架有很多约定俗成的书写方式。使用了很多设计模式,利于后期的维护与扩展。总而言之,因为java语言固有的弱点和刚入门的初级java程序员太多,所以逼的公司用流行框架。=》好招人,好辞人,好维护。仅此而已。
12 楼 banrui 2009-04-07  
SSH还是比较好用
11 楼 Ivan_Pig 2009-04-07  
SSH,不过是使你从代码堆里跳到xml文件堆里罢了~~~~
然后再向注解堆里面跳....
10 楼 tianyangqi 2009-03-30  
本意是要抛砖引玉,结果却没有引到多少玉来。希望大家把自己的理解发表发表,让我学习学习,也许我的理解是有问题的。
9 楼 tianyangqi 2009-03-28  
metadmin 写道

那个东东思路不难啊。比如我输入beanId是“myBean", "myBean"引用了"yourBean","hisBean",那么就把这两个也加进来。然后解析加进来的bean即可。没用什么的。XML,XML,很多东西好。但不能滥。。。

目前正在做个小项目,虽说没有真正的商业价值,但是还是喜欢做一做。

相关推荐

Global site tag (gtag.js) - Google Analytics