zoukankan      html  css  js  c++  java
  • Spring框架学习3:bean元素属性

    Spring的bean的常用属性

    1.scope

      scope用来配置bean对象是否是单例模式。单例模式是java的23种设计模式之一,指在这个项目运行中一个类的对象只会实例化一次,一般工厂创建的类都是单利模式。非单例模式叫多例模式或者原型模式。

    spring工厂中对象默认都是单利模式,如果想要配置成多例模式,可以使用bean的scope属性,scope常用有两个取值:

      singleton:单例模式,默认值

      prototype:原型模式,多例模式

    单例模式是工厂初始化时创建的,多例模式是工厂初始化后创建对象的时候创建的。

    举例说明,这里还以上一篇的电脑E470为例来说明,首先默认单例模式,创建E470对象:

    import com.zs.entity.impl.E470;
    import org.junit.Test;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class SpringTest {
        @Test
        public void test1() {
            ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
            E470 e470 = (E470) context.getBean("e470");
            E470 e4701 = (E470) context.getBean("e470");
            System.out.println(e470.equals(e4701));
        }
    }
    View Code

    结果为true,两个对象指向同一个地址。

    然后将e470修改为多例模式:

    再执行测试类,结果为false。

    2.autowire

    autowire是用来配置spring对象属性的默认的装配方式。有三个取值

      2.1 no 默认值,不启用自动装配

      2.2 byType:根据类型自动装配

      

      2.3 byName:根据名称自动装配,如果bean的name属性没有声明,默认取值id

      

    spring对象属性注入的两种方式:

      1.设值注入

        设置注入要求对象的实体类中必须生成get和set方法,然后再spring工厂中就可以使用property属性来实现设值注入

      

      2.构造注入

      构造注入要求:

        1.必须生成有参构造方法,

        

        2.在工厂中配置有参构造

        

    设值注入:使用起来比较直观,以后项目中大多数情况都采用设值注入,必须给对象生成get和set方法

    构造注入:不用生成get和set方法,看起来不太直观。

  • 相关阅读:
    USACO 5.5 Twofive
    USACO 5.4 Telecowmunication
    USACO 5.4 Character Recognition
    BZOJ 1001: [BeiJing2006]狼抓兔子
    USACO 5.4 Canada Tour
    USACO 5.3 Big Barn
    USACO 5.3 Network of Schools
    USACO 5.3 Window Area
    2017辽宁冬令营-4.蚂蚁
    2017辽宁冬令营-3.斐波那契
  • 原文地址:https://www.cnblogs.com/Zs-book1/p/10995642.html
Copyright © 2011-2022 走看看