本帖最后由 java2000_net 于 2008-06-14 07:36:28 编辑

解决方案 »

  1.   

    sping核心是两种技术,IOC/DI和AOP,前者称为控制反转/依赖注入,主要是为了防止大量的工厂存在,而由容器来管理需要的bean,只需要在配置文件中进行配置,代码改动很小,比如要更换数据库啊,更换bean的属性啊,都可以在配置文件中进行操作,这就是注入;后者是面向切面编程,简单地说,spring的AOP可以将一个方法切开,加入其他的操作,具体的好处,恕小弟力薄,呵呵,还要多看些资料,希望大家共同进步!
      

  2.   

    spring 很好很强大,无论是作为中间层,还是mvcweb曾都很前大
      

  3.   


    IoC的用处就是“装配”,比如你的Service方法里有个Dao(接口)属性,你可以给他装配一个DaoHibernate(实现了Dao接口)上去,也可以装配DaoJDBC(实现了Dao接口)上去,而修改装配只需要改配置文件,而不需要改源码,这就是IoC的好处吧AOP的典型应用就是事务管理,如果不用AOP,你每次访问数据库可能都要写这样的代码:public void update(){
        try{
            beginTransaction();        //这里是业务代码        commit();
        }catch(Exception e){
            e.printStackTrace();
            rollback();
        }finally{
            con.close;
        }
    }业务代码可能就是一个update语句,但其它乱起八糟的开启事务、提交、回滚、关闭连接却要写上一堆,而且是每个访问数据库的方法都要写这一堆,update要写,insert要写,modify要写,serach要写,而AOP的作用就是让你从这些和业务没有直接关系的代码中解放出来
    使用了AOP之后,代码变成这样:public void update(){
        //这里是业务代码
    }然后你只要在配置文件里把这个update方法配置成需要事务管理的,然后spring容器就会去帮你做开启事务、提交、回滚、关闭连接等等一堆事情,这就是靠AOP来实现的
      

  4.   

    您可以看看林信良的《spring技术手册》这本很好看。
      

  5.   

    简单的说spring引入了依赖注入使接口和实现类分离;spring还提供了声明式事务和编程式事务,使我们只需要去考虑业务逻辑,事务提交回滚的问题我们不用管了,spring的aop还能完成一些通用的功能;spring还无缝集合了struts和hibernate或者ibatis,使我们不用再手工去获取hibernate的sessionFactory,spring容器中的类是pojo,可以进行单元测试;
    spring还提供了一些额外的支持比如acegi,quartz等;
    spring还有个自己的mvc
      

  6.   

    可以看一下spring in action 不错的 
      

  7.   

    我觉得看文档的话,最好还是直接去看spring官方的资料,那才是最权威的..我觉得不单ioc/di很好,aop很有用,spring的MVC也有很好的设计..
      

  8.   

    先理解下简单工厂模式
    再看反射机制
    再看依赖注入马上就明白  当牛人需要时间spring的MVC也有很好的设计。。
      

  9.   

    我们的程序编写的过程中.需要一个对象.传统的做法是什么
    1:持有对象的引用,缺点:用new的话.有一个很大的缺点,就是你需要多少个对象.就需要new一下.如果你的项目需要几千个对象.难道你new几千个对象?显然这种方法不能满足我们的需求
    2:工厂模式:有一个接口。就需要一个工厂。但是有几百个接口的话。是不是需要几百个工厂呢。就是说你需要不同的对象。是不是每一种对象都需要创建一个工厂呢。显然。这也不理想。
    非常明显.上述两种方式都不行.要么.就是调用者和被调用者耦合的非常紧密.
    要么.就是被调用者和工程耦合的过于紧密.
    面向的对象的核心思想就是解耦合.减少代码量.
    于是IOC就应运而出了
    所谓IOC(依赖注入或者控制反转):当某个角色(调用者)需要另一个角色(被调用者)的协助时.通常是由调用者来创建被调用者的实例(实例).但是在IOC里.创建被调用者的工作不再由调用者来完成.因此被称为(控制反转).此时呢.创建被调用者(实例)的工作通常由Spring的容器来完成。然后在注入调用者。因此也称为依赖注入IOC设计模式,
    重点关注组件的依赖性。配置以及生命周期,也适用于简单类,应用代码需要告知容器或框架,让它们找到自身所需要的类,然后在由应用程序代码创建对象实例的任务交给IOC容器或框架
      

  10.   

    SPRING这个东西从官方的角度来看是非主流的产品,但是SPRING完全可以实现J2EE框架内的所有功能,比如EJB里面的实体BEAN是将数据从数据库中取出,包装成一个对象实体的形式提供给用户或其它BEAN,在SPRING里面就用hibernate来进行包装,会话BEAN就用其MVC结构来实现,而且最重要的是SPRING是轻量级的实现,EJB是重量级的实现,EJB在资源上的消耗可能用过的朋友都知道,SPRING非常轻便开发也容易和STRUTS加构比其灵活性更高.
      

  11.   

    以下引用自spring2.0-reference_final_zh_cn.chm依赖注入(DI)背后的基本原理是对象之间的依赖关系(即一起工作的其它对象)只会通过以下几种方式来实现:构造器的参数、工厂方法的参数,或给由构造函数或者工厂方法创建的对象设置属性。因此,容器的工作就是创建bean时注入那些依赖关系。相对于由bean自己来控制其实例化、直接在构造器中指定依赖关系或则类似服务定位器(Service Locator)模式这3种自主控制依赖关系注入的方法来说,控制从根本上发生了倒转,这也正是控制反转(Inversion of Control, IoC) 名字的由来。 应用DI原则后,代码将更加清晰。而且当bean自己不再担心对象之间的依赖关系(以及在何时何地指定这种依赖关系和依赖的实际类是什么)之后,实现更高层次的松耦合将易如反掌。 
      

  12.   


    学习了一下,自己最近也在看sping,看了以上的说明,自己对spring也有了进一步的认识,谢谢了啊!继续学习中!
      

  13.   

    希望能出现一个高手,能用简短的话概括spring的核心
    虽然spring学的差不多,但有好多地方的意思没搞清楚
      

  14.   

    这几天在学习Spring 学习一下 
      

  15.   

    Spring 是一个通用的粘合剂,它可以粘合许多流行的东西。当然你自己手工粘合也可以,看你个人的水平,爱好和工期要求了
      

  16.   

    Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。
      

  17.   

    当初自个儿学的时候,不知道为什么?
    工作开发项目后,才发现spring那么方便,可惜公司其他人员不用spring。
      

  18.   

    个人体会,Spring的3大功能的优点:DI:
     映射工厂自己也可以写,的确,但是,Spring的DI可以把Java代码用XML来操作,比如说定义一个类是Singleton还是动态生成多个实例,只要更改xml的一个属性设定,不用再写代码了。这种工作量的差别不说也知道。
     甚至说,可以用DI来管理整个程序的实例,做顶部开发的人不需要考虑在那里生成实例,只要修改xml就可以得到自己想要的东西。
     最重要的事,整个修改不需要重新编译代码,顶多重启动服务器————这一点对于配置正在运行的web程序非常重要。无论是有技术还是政治方面,都可以省去不少工作量。AOP:
     Spring的AOP一般都是跟DI结合,比如说,你想要让用户访问地址A的时候做管理员认证。而管理员认证就可以作为一个单独的模块,通过xml配置到地址A的前面。
     经过N个月后,客户要求发生了改变,地址A不需要管理员认证,地址B要加入管理员认证。Spring的做法就是修改XML,外加充启服务器,快的话,可能几分钟就可以完成。
     这根直接编写代码的工作效率的差别,恐怕是一个天上一个地下。MVC:
     它可以把Model、View和Controller分得一清二楚,管设计的不用看程序,管程序的不用管设计,只要提供接口。而且,可以模板引擎不只局限于JSP,可以灵活使用任何一种适合自己口味的Java模板
    总之一句话,Spring就是用来减轻程序员负担,提高工作效率的。
      

  19.   

    你多用这个spring(春天)。多用用就自然知道了啊!  不明白就去实际操作一次。就知道这个术语是乜意思了晒!
      

  20.   


    这才叫精辟、我很赞同夏昕说过的一句话大意就是ioc和DI都不是好的描述、可能这确实跟语言习惯和文化背景有关...几乎可以确定的说老外公认的某“一句话概括”肯定不适合咱们、也好似我们看直译过来的日剧、净是些“...的吧”在我们看来莫名其妙的语言、其实人家就这么用。
    spring规范了面向接口编程、其技术基础是java的动态性(也就是class文件可以在运行时动态绑定)
    促进更符合ocp(对修改关闭对增加开放)原则的编码、说实话通过实践的感受就是所谓ocp原则在一般业务编码中没什么用、
    做个架构还是必须的。
      

  21.   

    我以前是学.net的,现在还是学.net的,将来还会学.net
      

  22.   

    我最近也在研究spring,想用他整合其他框架,正在努力学习中