现有的项目,是采用Struts1.X + JDBC的做法。
用尝试着用Hibernate,也亲身的体会到Hibernate带来的好处!但是Spring,却一知半解!
通过一个XML配置文件,来得到一个实例化Bean!
有这个必要吗?
Spring到底能给我带来什么好处??
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN"
"http://www.springframework.org/dtd/spring-beans.dtd"><beans>
    <bean id="userBean" class="com.xxx.test.spring.UserBean">
        <property name="username">
            <value>Bingo</value>
        </property>
        <property name="userpawd">
            <value>bingLONG.</value>
        </property>
        <property name="loginCount">
            <value>3</value>
        </property>
    </bean>
</beans>

解决方案 »

  1.   

    public static void main(String[] args) 
    {
    UserBean userBean = new UserBean();
    System.out.println(userBean.getUsername());
    System.out.println();        //利用Spring调用HelloBean
            Resource res = new ClassPathResource("com/xxx/test/spring/userbean.xml");
            BeanFactory factory = new XmlBeanFactory(res);        userBean = (UserBean) factory.getBean("userBean");
            System.out.println(userBean.getUsername());
            System.out.println(userBean.getUserpawd());
            System.out.println(userBean.getLoginCount());
    }
      

  2.   

    很有必要!
    之前也和你一样,对Spring似懂非懂的.!
    但祢项目做久了,祢会发现他的好处.它减少了祢写的代码,取代了工厂,提供HibernateTemplate模块,减少了程序的耦合度.这是我现在暂时感觉到的.
    ------------------
    你利用Spring调用HelloBean,这个实例是别人为了演示而这样写的.
    实际开发中,没那么复杂,更简单.. 
      

  3.   

    面向切面编程的aop  依赖注入  方便的远程调用
      

  4.   

    你现在只是学习阶段不能体会到spring真正的好处
    如果你开发一个项目的话(加入给予SSH框架的) ,项目中的类是巨多了,有许多的aciton类、actionform类 有许多的业务逻辑层类 有DAO
    当然如果你不用spring去配置也行,用到某个类时可以直接new,但是这样做出来的项目维护起来很难,首先两个之间你用new的话
    那么这两个类之间的耦合度就高了 
    而用spring以后,你不用在关心这等等的一切 ,他全部给你摆到配置文件中 
    你有一个UserAction ,OK!在spring中你就只要配置一下 
    <bean id="userAction" class="*.UserAction"></bean> 
    如果UserAction类中用到UserManager类的话,你也不用直接在程序中new了 ,你只需在程序中提供一个UserManager的set方法
    然后在配置文件中直接配置下就完成了 
    <bean id="userManager" class="*.UserManager">
    <property name="userManager" ref="UserManager"/>
    </bean>
    Spring就可以给你同意管理这些所有的aciton 类 所有的业务逻辑类 等等
    当你项目写好部署到服务器运行时,服务器一启动,就会自动读取spring的配置文件,然后把你配置的这些类全部实例化好..
    把你写的对象类全部给导出成数据库表,而不向你学hibernate的时候 写好的对象类还要自己写一个导出程序 给他导出成数据库表
    如果你写过项目就能体会到他的妙处,很强大  .....................这样说能明白点吗
      

  5.   


    谢谢!
    稍稍清楚一些了!以业务系统常见的增、删、改、查为例。...
    UserBean user = new UserBean();
    user.setUsername(XXX);
    user.setUserpawd(XXX);
    userDAO.add(user);
    ...我如何应用Spring??
      

  6.   

    做几个与Spring有关的demo
    就知道他的好处了
      

  7.   

    spring 晦涩难懂,但很优秀...
      

  8.   

    我觉得spring就是多种设计模式的一个集合框架 尤其是代理模式
      

  9.   

    spring就可以用一句话形容:好处好多,调试麻烦!!!!
      

  10.   

    不说还有个什么日志什么的吗?
    我没学过spring,现在看了上面的介绍,想学习学习。
    另外还有一点我没有看懂:什么是类与类之间的耦合???
      

  11.   

    你在学习的时候就那点代码量,随便在Action中new一new 无所谓,当你的项目很大的时候,代码一多你每个Action再去new DAO的时候你就知道有多么痛苦的,而且你每new一次就给你产生一个新的事例。效率!!spring是用配置文件注入到Action中去。默认是服务器容器一启动的时候就给你生成出来实例。
      

  12.   

    存在就有存在的理由,好处比较多
    本人受益匪浅的地方是ioc依赖注入,aop面向切面, hibernateTemplate 这些是设计模式的经典范例,不要设计模式没有例子,
    spring里全是
    工厂模式,观察者模式,模板模式等太多了
      

  13.   

    等待更多介绍照着书念,谁都会!
    关键是,要自己理解,用自己的话来表述!
    才是王道!!感谢daerqwert!
      

  14.   

    回楼主:假设我们有这么一个场景:
    某公司需要让使用的程序能查出人员信息.....这个应用显明会连接到数据库...........在这种情况下,作为开发人员来说,每个人的编码规范,逻辑思维,开发方式不同.........
    那可能会导致大家没有一个“约定”条件,从而可能使系统在开发的效率降低,开发中BUG增多,甚至出现不明错误,程序难以读懂等情况.........
    在这个时候,可能就需要有个人能做代码的管理任务,大家知道,这种事情会很累也很枯燥.....
    那大家会不会就是想出一个办法呢!当然这个办法就是在我们开发阶段不仅能提高效率也能注重规范,使开发过程中减少不必要的时间浪费......因为程序只会开发一次,后面的扩张和升级都属于后期或二期,所以需要能便于维护也能在开发中提高效率..........提出spring就是在这种情况下,提出的........虽然当时有EJB2.0,可当时对于开发人员来说,EJB2.0太重了,在中小企项目重,无法发挥才能,反而会导致软件开发的缺陷............基本就是这样的......
      

  15.   

    补充:上面同仁所说的,“不会见到NEW关键字了”这句话不是很准确...........
    应该是“尽量让NEW关键字减少”.............
      

  16.   

    spring的好处要慢慢体会。
    最基本的他是一个很好的factory。如果你面向接口编程的话,体会会更多。如果有AOP需求的话,才更有体会。
      

  17.   

    IOC:依赖注入(实现控制反转,将DAO之类的实例交给Spring容器)
      

  18.   

    你要玩过EJB就知道Spring没那么好了!本人觉得Spring还是比较烦的,很多东西还是要写进配置文件里去,配置的东西写的多了本身也造成维护的问题了。所以EJB使用标注的方式是比较好的!
      

  19.   

    Spring最有用的还是IOC,aop仅仅只是设计Spring的人的一厢情愿的想法罢了,aop真的在开发的时候最多给方法切个事务罢了,除了这个基本上很少有其它的情况了,所以这个是设计过度,不过换句话说回来不多写事务也挺方面的,反正Spring是免费的,用用还不错。但是IOC的话主要还是一个减耦的作用,使用IOC的时候对一些方法进行接口规范,使用它们的时候只要使用多态的方式去注入即可,这种是典型的抽象依赖,非常不错的设计思想!到项目后期维护的时候不用对原来的项目重新编译就可以改项目的逻辑,有逻辑变动只要多写一个方法,然后配配配置文件即可,典型的开闭原则,非常强大!
      

  20.   

      Spring  贯穿了整的项目!  估计在开发中才会体会出Spring的好处!
      

  21.   


    +1 这种感觉很强烈,我也是经历了一个 反感 -> 喜欢 -> 跟本离不开 的过程。
      

  22.   

    Spring 春天,作者的目的是为了让编程像春天般温暖。
    lz一直在春天里,所以感觉不到温暖,建议去冬天、夏天以及秋天,在你经历了那些日子以后,再回到春天,
    你就能感觉到Spring的温暖了。
      

  23.   

    对于一知半解的LZ
    了解一下用AOP托管事务
    然后自己试试
    就知道了
    commit什么的操作几本不用手写了
      

  24.   

    觉得spring用到了很多设计模式 可以深刻体会到设计模式的好处 像工厂模式 代理模式
      

  25.   

    Spring带来的好处就多的多啦,IOC,事务,使用Spring可以实现高类聚,低耦合,易于后期代码的维护。
      

  26.   

    spring是处理业务层的。能让程序员从繁琐的从重复性的工作中解脱出来,开发人员只用关心业务逻辑。
    spring的Ioc容器负责实例化对象。spring是非常不错的业务处理的轻量级的框架
      

  27.   

    自己看doc文档,我想会收获很大
      

  28.   

    先理解spring的ioc容器的概念
    再看看注解的用法  很简单service层:
    @Resource
    private DataDaoImpl dataDaoImpl;dataDaoImpl会在容器(tomcat)启动的时候初始化,这样你就不用再一个一个的new出来了你不觉得这样是很大的改变么.
      

  29.   

    用spring之前你是买次零食都要亲自去商店去买,用spring之后你只需要关心你买什么,具体怎么买交给spring来搞,你只管吃就行了。
      

  30.   

    spring我也是一知半解,但是我认为只要是框架,无非是为了一个原因,通过配置降低耦合度,进而以后的维护也就方便了,改变一下配置文件就成了,本人见识粗浅,大家莫笑,哈哈