Spring框架IOC容器

一、Spring框架IOC容器
      

              通常情况下, 类似于数据源, 事务, 整合其他框架都是放在 spring 的配置文件中(而不是放在 SpringMVC 的配置文件中).

              实际上放入 Spring 配置文件对应的 IOC 容器中的还有 Service 和 Dao. 


              Spring 的 IOC 容器和 SpringMVC 的 IOC 容器扫描的包有重合的部分, 就会导致有的 bean 会被创建 2 次.

              所以 Spring 的 IOC 容器不应该扫描 SpringMVC 中的 bean, 对应的SpringMVC 的 IOC 容器不应该扫描 Spring 中的 bean。


             

              解决:

                     1. 使 Spring 的 IOC 容器扫描的包和 SpringMVC 的 IOC 容器扫描的包没有重合的部分. 

                     但是有时候我们按业务模块创建包名,就不可避免有包重合,所以使用第二种方法


                     2. 使用 exclude-filter 和 include-filter 子节点来规定只能扫描的注解


            SpringMVC 的 IOC 容器是 Spring IOC 容器的子容器
            SpringMVC 的 IOC 容器中的 bean 可以来引用 Spring IOC 容器中的 bean. 
           返回来呢 ? 反之则不行. Spring IOC 容器中的 bean 却不能来引用 SpringMVC IOC 容器中的 bean!
           多个 Spring IOC 容器之间可以设置为父子关系,以实现良好的解耦。
           Spring MVC WEB 层容器可作为 “业务层” Spring容器的子容器:即 WEB 层容器可以引用业务层容器的 Bean,而业务层容器却访问不到 WEB 层容器的 Bean
           SpringMVC 的 IOC 容器是 Spring IOC 容器关系图解


(2)

                 
       一个java应用程序是有很多类组成的,这些类相互协作、相互作用来提供应用程序的表现行为。那些被其它类组合提供某些行为的类,称之为其它类的依赖(dependencies)。利用软件工程中的组合模式(经常是继承模式的反模式)来说,我们经常利用某些类组合成其它类,不管这些类是通过构造函数还是setter方法或其它方法,那么组合成其它类的那些类就是这个组合类的依赖。当组合类要表现出的行为依赖这些类的时候,这些类必须被创建并注入给组合类。
       在spring应用中,spring ioc 容器就负责上述功能:创建类并注入它们的依赖。那些被spring容器创建并管理的类称只为bean。当spring管理了这些类的时候,我们就没必要实现一些设计模式来组合我们的应用,比如Factory, Service Locator等等。

       对于一个应用,其中的类和类之间的依赖关系是通过某些配置元数据表现。
       
        spring容器读取了配置元数据之后,通过java反射创建类并注入其依赖类。

        spring容器提供配置元数据的方式有xml和java注解两种方式。



  更多好文章ioc,aop:http://www.cnblogs.com/xiaoxing/p/5836835.html:点击打开链接


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值