首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Spring(一)

2012-12-23 
Spring(1)IOC1.概念1.1 叫做控制反转,也可以叫做依赖注入对象之间的依赖关系交给Spring来处理.对象之间的

Spring(1)
  IOC
 
  1.概念
   1.1 叫做控制反转,也可以叫做依赖注入
     对象之间的依赖关系交给Spring来处理.
     对象之间的耦合是通过xml文件来处理.
   1.2 优点
     模块之间的关系低耦合,容易测试,容易维护.
 
  2.基本使用
   2.1首先要挑选合适的容器.
    BeanFactory 是Core Spring的工厂,也是最基本的.
    ApplicationContext 属于Spring Context.是BeanFactory的子类,用于C/S架构
    WebApplicationContext 也是BeanFactory的子类,用于B/S架构
   2.2 获得容器
    先写配置文件xml,文件名不重要,但是要符合相应的DTD或者Schme;
    实例化容器,比如ApplicationContext的就是ClasspathxmlApplicationContext
   2.3 装配方式
    2.3.1 基于set的装配
     2.3.1.1 基本类型
       <property name="属性名" value="属性值">
       //Spring会自动转换为相应的类型,若强转失败就抛异常
     2.3.1.2 对象类型
         <property name="属性名">
         <ref local="id">//指的是本xml文件内,或者用bean,指的是所有已经被加载的xml文件
         </property>
     2.3.1.3 集合类型
       list
       <property name="属性名">
       <list>
       //里面可以跟基本类型,也可以是对象.可以参考上面.
       </list>
      
       Set
       就是Set标签,里面跟上面一样,唯一的不同在于若放入相同的元素会被剔除.
      
       map
       <key="" value="">
       也可以是对象<key-ref="" value-ref="">
       若是用local的话,就再加一层标签.
      
       properties
       因为是字符串,故会简单很多.
       要注意的是,这里的value不能作为标签的属性.
       <props>
       <prop key="key3">value3</prop>
       </props>
        </property>
      
    
    2.3.2 基于构造器
     做一个有参构造器.在xml使用<constructor-arg>标签,但一个标签只能是一个形参.
     要注意的是,这里的次序不能乱排,要跟有参构造器里的一致.
   
    2.3.3 基于构造器和基于set的区别
     构造器的会有循环依赖问题.而且若属性过多,构造器的写法会很繁多.
    
  3.高级使用
   3.1 自动装配
     根据提示来装配对象,注意,这里只适合对象,当然也可以用基本使用方式来做基本类型的创建.
     autowire="byName" 根据属性名来匹配bean的id.
     autowire="byType" 根据Set方法的形参属性的类型来跟bean的类型匹配
     autowire="constructor" 根据构造方法里的形参类型
     autowire="autodetect" 自动选择,若有无参构造方式就用set,不然就用构造方式的(注意,这里的选择是针对基本使用).
   3.2 工厂方式的装配
    3.2.1 简单工厂
     先做好接口和实现类.以及工厂方法
     然后写配置文件
      这个bean的class要是工厂类,然后增加一个标签factory-method="getcar"
      比如
      <bean id="car" factory-method="getCar"/>

热点排行