使用spring的IOC容器管理业务对象的时侯,在服务器一开启,会读取applicationContext.xml文件,然后将所有的业务对象new出来,因为action--->service--->dao,(不知道这样写大家明白吗,就是依赖关系),服务器开启时是全部业务对象全部创建出来,并且将dao注入,然后一个请求过来之后在讲service注入呢,还是全部new出来,但是不注入,知道访问的时间才开始注入依赖关系?
希望各位大哥不吝赐教

解决方案 »

  1.   

    默认spring启动完成时就全部创建并把依赖关系注入好了可以配置 default-lazy-init="true" 请求时再创建对象
      

  2.   

    我们将Action交给Spring管理,Spring使用代理的Action取出sessionFactory,然后从IOC容器将action取出,不是这个时候才将action和service的依赖关系注入吗?要是默认spring启动完成时就全部创建并把依赖关系注入好了,那还要action交给Spring管理干吗?请指正
      

  3.   

    bean作用域声明为prototype的不会在容器启动的时候注入,而是在每次调用的时候产生一个实例
    Spring里面不叫action叫controller,不过Spring的特长不在mvc控制,而在bean的管理,为什么要让spring替我们管理bean,除了可以生成实例外然后注入外,还有aop,这两个方面就是spring的核心
    lz可以多看看spring in action这本书,讲得挺好的。
      

  4.   


    先申明我说的情况是指默认singleton情况。。
    你不把action交给spring管理,spring怎么知道给你的action注入service呢??
      

  5.   

    spring 
    <bean …………
     default-lazy-init="true" />
      

  6.   

    spring  
    <beans …………
     default-lazy-init="true" />