zoukankan      html  css  js  c++  java
  • spring容器中bean的初始化

    当我们在spring容器中添加一个bean时,如果没有指明它的scope属性,则默认是singleton,也就是单例的。

    例如先声明一个bean:

    public class People {
    	private String name;
    	private String sex;
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public String getSex() {
    		return sex;
    	}
    	public void setSex(String sex) {
    		this.sex = sex;
    	}
    	
    }	
    

     在applicationContext.xml文件中配置

    <?xml version="1.0" encoding="UTF-8"?>
    <beans
        xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:p="http://www.springframework.org/schema/p"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd">
        
        <bean id="people" class="People"  ></bean>
    
    </beans>

     

     然后通过spring容器来获取它:

    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    
    public class SpringTest {
    
    	public static void main(String[] args) {
    		ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
    		People p1=(People) context.getBean("people");
    		People p2=(People) context.getBean("people");
    		System.out.println(p1);
    		System.out.println(p2);
    	}
    
    }
    

     运行之后可以看出p1和p2输入的内容是一样的,说明spring中的bean是单例的。

    如果不想要单例的bean,可以将scope的属性改为prototype

    <bean id="people" class="People" scope="prototype" ></bean>

    这样通过spring容器获取的bean就不是单例的了。

    spring容器默认情况下在启动之后就自动为所有bean创建对象,若想要在我们获取bean时才创建的话,可以使用lazy-init属性

    该属性有三个值defalut,true,false。默认是default,该值和false一样,都是spring容器启动时就创建bean对象,当指定为true时,

    在我们获取bean时才创建对象。

  • 相关阅读:
    ural 1723 Sandro's Book
    ural 1104 Don’t Ask Woman about Her Age
    ural 1052 Rabbit Hunt
    ural 1837 Isenbaev's Number
    ural 1348 Goat in the Garden 2
    ural 1207 Median on the Plane
    ural 1640 Circle of Winter
    段错误 核心已转储尝试解决
    显卡相关命令介绍【转载】
    Linux的top命令学习【转载】
  • 原文地址:https://www.cnblogs.com/ChanSS/p/5572911.html
Copyright © 2011-2022 走看看