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方法,看起来不太直观。

  • 相关阅读:
    设计模式学习总结系列应用实例
    【研究课题】高校特殊学生的发现及培养机制研究
    Linux下Oracle11G RAC报错:在安装oracle软件时报file not found一例
    python pro practice
    openstack python sdk list tenants get token get servers
    openstack api
    python
    git for windows
    openstack api users list get token get servers
    linux 流量监控
  • 原文地址:https://www.cnblogs.com/Zs-book1/p/10995642.html
Copyright © 2011-2022 走看看