您的位置:首页 > 编程语言 > Java开发

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



测试

在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的区别。

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: