• SpringMyBatis-02


    1、Spring IOC

        1)IOC全称Inversion Of Control,被翻译成控制反转

        2)控制反转:指程序中对象的获取方式发生反转,由最初的NEW方式创建,转变为由第三方框架创建,注入(DI),它降低对象之间的耦合度

        3)Spring容器采用DI方式实现IOC控制,IOC是Spring框架的基础和核心

        4)DI全称是Dependency Injection,被翻译成依赖注入,依赖注入的基本原理是:将一起工作具有关联关系的对象通过方法参数传入,建立关系,因此容器的工作就是创建Bean对象时注入依赖关系

      注意:IOC是一种思想,而DI是实现IOC的主要技术途径

        5)DI主要有两种注入方式,即Setter注入和构造器注入

            -1)Setter注入

    public class B{}
    public class A{
    private B b;
    public void setB(B b){
    this.b=b;
    }
    }

            -2)构造器注入

    public class B{}
    public class A{
    private B b;
    public A(B b){
    this.b=b;
    }
    }

        6)自动装配

          Spring容器可以自动装配(autowire)相互协作Bean之间的关联关系,autowire可以针对单个Bean进行设置,方便之处在于减少XML注入配置

          在配置文件中,可以在<bean>标签中使用autowire属性指定自动装配的规则,一共有三种类型值:

    byName:根据属性名自动装配,此选项将检查容器,根据名字查找与属性名一致的Bean,然后将其与属性自动装配(setter注入)
    byType:如果容器中存在一个与指定属性类型相同的Bean,则将与此属性自动装配(setter注入)
    constructor:与byType方式类似,不同之处在于它应用于构造器方式(构造器注入)

    2、参数值注入

        1)注入基本值

          可以通过<value>标签或value属性来指定方法参数的值,容器将字符串从java.lang.String类型转换为实际的参数类型,然后给Bean对象注入

        2)注入Bean对象

          注入外部Bean(引用方式,方便重用)

        3)注入集合

          通过<list>、<set>、<map>、<props>标签来定义与Java中对应的List,Set,Map及Properties的参数值

          List,Set,Map及Properties都可以采用引用方式,<util:list>、<util:set>、<util:map>、<util:properties>

        4)注入Spring表达式

          Spring表达式语言,和EL表达式在语法上很相似,可以读取一个Bean对象或集合中的数据

        5)注入NULL或空字符串

          Spring将属性的空参数当做空String

    <bean>
    <property name="name" value=""/>
    </bean>

    3、基于注解依赖注入

        具有依赖关系的Bean对象,可以使用以下任意一种注解实现注入:

        1)@Autowired/@Qualifer

            可以处理构造器注入和Setter注入

            @Autowired写在构造器或set方法前,声明需要为其注入Bean

            @Qualifer写在参数前面,声明注入的Bean的id

            @Autowired/@Qualifer也可以写在属性上,作用和写在set方法上类似,但只会执行一行代码(赋值代码)

         注意:注入对象是单例时,@Qualifer可省略,此时Spring按照参数类型匹配参数值

            @Resource:只能处理Setter注入

                 @Resource也可以写在属性上,作用和写在set方法上类似,但是只会执行一行代码(赋值代码)

          注意:注入对象是单例时,(name="标识符")可省略,此时Spring按照参数类型匹配参数值

  • 相关阅读:
    QuickContactBadge
    第一周——15选1
    UVA 10036 Divisibility
    POJ 3984 迷宫问题
    POJ 3258 River Hopscotch
    CodeForces 230A Dragons
    HDU 4450 Draw Something
    POJ 2485(PRIME算法)
    HDU 1213
    CodeForces 16E
  • 原文地址:https://www.cnblogs.com/xslzwm/p/9598736.html
Copyright © 2020-2023  润新知