spring学习笔记(五)

beans标签的属性 可以设置是配置文件初始化的时候是全部初始化,还是延迟初始化
默认是全部初始化


springBean 的作用域
两种 1:singleton : 每次调用getBean返回相同的实例
    2:prototype : 每次调用getBean返回不同的实例
   
    默认为singleton方式

结构

 

 

package zhc.love.dj.spring;

public class Bean1 {

}

 

 

  

package zhc.love.dj.spring;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;


import junit.framework.TestCase;

public class TestSpringBeanScope  extends TestCase{
	
	public  void testScope(){
		BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml");
		Bean1 bean11 = (Bean1)factory.getBean("bean1");
		Bean1 bean12 = (Bean1)factory.getBean("bean1");
		
		if(bean11==bean12){
			System.out.println("only one object");
		}else{
			System.out.println("bean11!=bean12");
		}
		
	}

}

 

 

   不加scope 默认为单例模式,只生成一个对象.加上后每次调用getBean就生成一个对象,适用于多线程时候 

 

  

<?xml version="1.0" encoding="UTF-8"?>
<beans
	xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="bean1" class="zhc.love.dj.spring.Bean1" scope="prototype"></bean>

</beans>

 

你可能感兴趣的:(spring,多线程,bean,prototype,JUnit)