1.我个人感觉,struts就是强制程序员使用MVC模式,如果单纯的使用jsp+servlet+javabean,程序员自己控制的好,一样实现MVC,完全可以不用struts,并且这样灵活性更高,框架似的东西虽然提供某些好处,但也有碍手碍脚的地方 
我就是这样理解的,不知道对不对 
--------------------- 
2.spring我是一点不懂,不理解啥意思,看书上的概念,也是越看越晕,不像struts一样好理解,主要实现MVC,一看就明白了 
这个spring到底能干啥呢,什么情况下适合使用呢,哪位兄弟能指点小弟一把,真是万分感谢,或者指点我一下学spring该怎么入门 
------------------------------------------ 
3.hibernate,我的理解:最大的好处就是可以换数据库而不改代码,动一下配置文件就OK了,但换数据库的情况好像和中大奖的几率相似...... 
程序员开发过程中,使用hibernate好像还不如直接写sql语句痛快呢,而且它也是根据配置文件、程序代码、参数等,拼接出sql语句给数据库执行,这样增加了很多操作,对性能有影响 
为啥还要用hibernate呢,直接写sql语句多灵活呀 
请兄弟们看在同行的份上,帮小弟一把吧,我实在太困惑了,这些问题折磨了我好久 
 ---------------------------------------------------------------------------
看你上面一直强调MVC,我想说的是一个框架并不是由一个MVC就能你解决的,它是N个模式的综合。
对于1:你看到只是表面的,其实你在用STRUTS的时候也就是用的它的一个流程标准来进行工作的,对于一个公司来说,用它减少了很多的维护成本;
对于2:spring是一个企业级而且轻量级的开发框架,里面有很多的东西,比如:AOP,DI;还有自己的页面,从前台到后台都自己的一套,并且和当下流行的框架都有非常好的衔接;
对于3:一个软件换数据库的概率是不大的,如果你的软件要复用的话,也就是用在另一个客户,他不要你和上一个客户同样的数据库,你就知道它的好处了。

解决方案 »

  1.   

    2楼的朋友,首先感谢您这么晚了还能抽出时间给我解答问题,谢谢
    对于第一个问题的回答,我可否这样理解:“strtus对编程人员来讲是实现架构,使程序便于维护,这样也就降低了了公司的成本”
    第二个问题:我在找找资料学一下吧,主要是针对spring没入门,不知道从哪下手,这时候最苦恼
    第三个问题:从您对我的回答来看,hibernate用在商业产品上比较合适,卖给不同的客户可以使用不同的数据库,主要还是换数据库的问题,但这是对公司有好处,是商业上的问题,我想知道对程序员来讲,从开发的角度看,hibernate能带给我们什么
      

  2.   

    > 对于第一个问题的回答,我可否这样理解:“strtus对编程人员来讲是实现架构,使程序便于维护,这样也就降低了了公司> 的成本” 
    > 第二个问题:我在找找资料学一下吧,主要是针对spring没入门,不知道从哪下手,这时候最苦恼 
    > 第三个问题:从您对我的回答来看,hibernate用在商业产品上比较合适,卖给不同的客户可以使用不同的数据库,主要还> 是换数据库的问题,但这是对公司有好处,是商业上的问题,我想知道对程序员来讲,从开发的角度看,hibernate能带给> 我们什么Lz确实一直在提MVC模式,我想知道Lz对模式的理解是什么?对MVC模式的理解又是什么?
    在我看来一种模式就是前人对一种问题解决的经验,解决双向依赖问题的观察者模式,减少子系统复杂度的facade模式,实现类与资源解耦的工厂模式等等。MVC模式就是前人提供给我们能够更好的实现三层结构(表现层、业务层、持久层)的一种解决方法,而struts、spring和hibernate这些框架就是一些有经验的技术前辈对这些模式的诠释。选择合适的框架对于开发的人来说,就是减少了你开发的难度、时间和风险。而这些对于一个项目来说是至关重要的。Hibernate是一个ORM的开源框架,其最为重要的意义也就在于ORM,而并不在于是否能够换到另外一个数据库上。我很想知道Lz对ORM的理解是什么?对OO的理解又是什么?
      

  3.   

    技术为应用服务,无论对象是自己公司,还是销售的客户
    1 java可以让你自由的书写代码,而struts 约束你必须按照某个框架来写,好处楼上那位已经说了,编码统一。
    你的程序,可以让你的同事用更少的时间看懂,如果项目人员超过5人,且大家是按照模块划分的,那么保证各个模块的编码风格统一是非常重要的。 
      你可能哪一天就离开公司另谋高就了,可公司还在,程序还得有人维护。2 Spring 我用的最多的就是IOC, 比如你在做页面,需要某个数据,它来自于另一个同事负责的业务层,而那个同事需要的数据来自于数据层。
    难道他们2个不完成工作,你就没办法测试了吗?
      此时,Spring可以帮你,你可以用他给你的程序注入虚假的程序,也就是你自己实现一个业务接口。 业务层完成了,你只需要简单更改一下配置文件里面的实现类,把你的改成他的就可以了。
       其他的AOP什么的,我很少用。日志有很多方法可以实现,权限也是一样。3 hibernate 主要是减轻SQL的编码量, 你改动了一个字段,你要修改n多的地方,还不能保证没有忘记一处。呵呵!这是我体会最深的。
    开发阶段,需求经常变,数据库也经常变,这个真的不错。
    当然,我自己更喜欢JPA,毕竟是标准EJB3里面的东西, 我不用Hibernate, 换成Toplink / weblogic 的XXX(我忘了因为我不用那个) 程序仍然能用。 Hibernate 也实现了JPA,所以我依然用H  至于换数据库,是个理由,但决不是主要理由。 每个数据库都有其特性,如果你的程序为了通用而放弃那些特性,那是不负责任的做法。客户关心的是1 能否使用
    2 能否减少投资和费用,这一条就和程序的效率非常有关。
    3 能否继续升级一般我都是MySQL版的价格为nK,SQL版的 nnK, Oracle版的,至少 1nnK, 用得起Oracle/DB2的,没有小公司
    总之,这三个东西,可以减轻程序员的整体开发难度和维护难度。
    当然,如果大家编码规范弄得好,也没必要拘泥这个。
      

  4.   

    你们都说的差不多了,我只说一点,对于mvc模式,这三个框架都可以实现自己的mvc模式的。lz对mvc模式理解透了吗?
      

  5.   

       个人了解:更高层次的MVC   M:数据模型,现在常用的为:javabean,EJB等.高一点的:hibernate
       v:显示,现在常用的为:HTML,JSP等. 高一点:struts现在很多已经在用了,最简单的方法直接看一些网页的扩展名就可以了,如"*.do"或直接以"/"结尾.
       c:控制,现在常用的为:servlet,struts等. 高一点:Spring(框佳),他的作用就是来管理javabean,hibernate等之间的关系的
      

  6.   

    我也来share一下这个观点吧:
    MVC是因为软件系统发展的越来越庞大,分工也越来越细致,完全有必要让美工和程序员鸽各自只关心自己的工作。 那种包治百病的jsp,美工看不懂,程序员估计也看的头大。
    spring是个很好的东东,管理项目所以的bean,提供事务、AOP, 并且融合常见的struts,webwork, ibatis,hibernate框架,还很容易融合hissian,xfire等等东西。
    hibernate这个东西推荐大家看看gav king写的指南。在有DBA团队的公司肯定不用这个,都是ibatis。 但是这个东东的思想,ORM方法值得学习
      

  7.   

    当软件开发从小作坊式的封闭开发进化为航母级别的企业开发后,变化带来的成本爆炸式增长。
    解决方案级别的策略是推出减少变化、增强扩展的框架,struts、spring、hibernate应运而生。
    通过科学规范带来商业成本(开发和维护)的降低,制造赢利