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时才创建对象。

  • 相关阅读:
    Linux下权限的解释
    【小小帝国】部分攻略
    php上传大文件时php.ini的几处设置
    SSH登录常用工具推荐
    梅兰文化http://www.tzhl.gov.cn/col/col894/index.html
    PHP上传大文件 分割文件上传
    ssh连接Linux很慢,且ssh传输文件很慢的解决方案
    vi命令使用
    SWFUpload 2.5.0版 官方说明文档 中文翻译版
    利用Flash上传大文件,swfupload修改说明flash制作教程
  • 原文地址:https://www.cnblogs.com/ChanSS/p/5572911.html
Copyright © 2011-2022 走看看