11.笔记JAVA Spring框架学习————Bean作用域
2017-11-08 20:06
555 查看
11.笔记JAVA Spring框架学习————Bean作用域
l 在 Spring 中, 可以在<bean> 元素的 scope 属性里设置 Bean 的作用域.
l 默认情况下, Spring只为每个在 IOC 容器里声明的 Bean 创建唯一一个实例, 整个 IOC 容器范围内都能共享该实例:所有后续的 getBean() 调用和 Bean 引用都将返回这个唯一的 Bean 实例.该作用域被称为 singleton,
它是所有 Bean 的默认作用域.
如下图1:
<bean
id="car"class="Car"
scope="prototype">
<constructor-arg
value="KUGA"index="1"></constructor-arg>
<constructor-arg
value="ChangAnFord"index="0"></constructor-arg>
<constructor-arg
value="250000"type="float"></constructor-arg>
</bean>
Main.java中代码如下:
import java.util.Locale.Category;
importorg.springframework.context.ApplicationContext;
importorg.springframework.context.support.ClassPathXmlApplicationContext;
public class Main {
publicstatic void main(String[] args) {
//1.创建 Spring
的 IOC
容器
ApplicationContextapx = new ClassPathXmlApplicationContext("app.xml");
Carcar = (Car) apx.getBean("car");
System.out.println(car);
Carcar2 = (Car) apx.getBean("car");
System.out.println(car== car2);
}
}
输出如下:
Car[company=ChangAnFord, brand=KUGA, maxSpeed=0, price=250000.0]
false
<bean
id="car"class="Car"
scope="singleton">
<constructor-arg
value="KUGA"
index="1"></constructor-arg>
<constructor-arg
value="ChangAnFord"
index="0"></constructor-arg>
<constructor-arg
value="250000"
type="float"></constructor-arg>
</bean>
将scope改成singleton,然后测试执行如下:
Car[company=ChangAnFord, brand=KUGA, maxSpeed=0, price=250000.0]
true
说明了,scope中singleton和prototype的区别。
l 在 Spring 中, 可以在<bean> 元素的 scope 属性里设置 Bean 的作用域.
l 默认情况下, Spring只为每个在 IOC 容器里声明的 Bean 创建唯一一个实例, 整个 IOC 容器范围内都能共享该实例:所有后续的 getBean() 调用和 Bean 引用都将返回这个唯一的 Bean 实例.该作用域被称为 singleton,
它是所有 Bean 的默认作用域.
如下图1:
测试
在app.xml中主要配置代码如下:<bean
id="car"class="Car"
scope="prototype">
<constructor-arg
value="KUGA"index="1"></constructor-arg>
<constructor-arg
value="ChangAnFord"index="0"></constructor-arg>
<constructor-arg
value="250000"type="float"></constructor-arg>
</bean>
Main.java中代码如下:
import java.util.Locale.Category;
importorg.springframework.context.ApplicationContext;
importorg.springframework.context.support.ClassPathXmlApplicationContext;
public class Main {
publicstatic void main(String[] args) {
//1.创建 Spring
的 IOC
容器
ApplicationContextapx = new ClassPathXmlApplicationContext("app.xml");
Carcar = (Car) apx.getBean("car");
System.out.println(car);
Carcar2 = (Car) apx.getBean("car");
System.out.println(car== car2);
}
}
输出如下:
Car[company=ChangAnFord, brand=KUGA, maxSpeed=0, price=250000.0]
false
测试二
将app.xml改为如下:<bean
id="car"class="Car"
scope="singleton">
<constructor-arg
value="KUGA"
index="1"></constructor-arg>
<constructor-arg
value="ChangAnFord"
index="0"></constructor-arg>
<constructor-arg
value="250000"
type="float"></constructor-arg>
</bean>
将scope改成singleton,然后测试执行如下:
Car[company=ChangAnFord, brand=KUGA, maxSpeed=0, price=250000.0]
true
说明了,scope中singleton和prototype的区别。
相关文章推荐
- 18.笔记JAVASpring框架学习————基于注解配置Bean之二
- 13.笔记JAVA Spring框架学习————Bean使用SpEL
- 16.笔记JAVA Spring框架学习————通过FactoryBean配置Bean
- 15.笔记JAVA Spring框架学习————通过工厂配置Bean
- 17.笔记JAVA Spring框架学习————基于注解配置Bean之一
- 7.笔记JAVASpring框架学习——Bean配置独立的集合属性
- 14.笔记JAVA Spring框架学习————Bean生命周期
- 12.笔记JAVA Spring框架学习————Bean使用外部属性文件
- 8.笔记JAVASpring框架学习——Bean配置使用P命名空间
- java 设计模式 学习笔记(11) 建造者模式
- 上下载结合iOS学习笔记11-UITabBarController和UInavigationController的结合demoStrut2教程-java教程
- java学习笔记11--Annotation
- Java并发编程学习笔记 深入理解volatile关键字的作用
- 【分布计算环境学习笔记】4 Enterprise Java Bean
- spring学习笔记——spring框架bean装配流水线
- Java 学习笔记11:Spring MVC 中的基于注解的 Controller
- java学习笔记11--Annotation
- Java学习笔记38:通过Spring Bean 注入static变量,来设计一套适合测试,开发,生产环境的配置项
- Java学习笔记---11.面向对象编程06-Java的内部类及对象数组
- spring学习笔记2--Bean的初始化(实例化)、作用域