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>