hualinux spring 3.9:bean的作用域

目录

一、知识点

二、默认情况

2.1 创建XML

2.2 相关代码

三、prototype

四、 singleton

五、总结 


 前章讲了继承和依赖,本章将讲bean的作用域

 

一、知识点

bean 的作用域:singletonprototypeWEB 环境作用域

以下直接通过例子说明 

二、默认情况

2.1 创建XML

src右击-->new-->XML Configuration File-->Spring config-->输入名字“beans-scope” 


    <bean id="car" class="com.hualinux.beans.autowire.Car">
        <property name="brand" value="宝马x7"/>
        <property name="price" value="1500000"/>
    </bean>

2.2 相关代码

src-->com.hualinux.beans.scope.Main.java

package com.hualinux.beans.scope;

import com.hualinux.beans.autowire.Car;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Main {
    public static void main(String[] args) {
        ApplicationContext ctx=new ClassPathXmlApplicationContext("beans-scope.xml");
        Car car= (Car) ctx.getBean("car");
        Car car2= (Car) ctx.getBean("car");

        System.out.println(car==car2);
    }

}

运行结果:

结果:true

 

三、prototype

作用域是原型的

修改上面的beans-scope.xml,如下

    <bean id="car" class="com.hualinux.beans.autowire.Car" scope="prototype">
        <property name="brand" value="宝马x7"/>
        <property name="price" value="1500000"/>
    </bean>


<!--
    <bean id="car" class="com.hualinux.beans.autowire.Car">
        <property name="brand" value="宝马x7"/>
        <property name="price" value="1500000"/>
    </bean>
-->

运行com.hualinux.beans.scope.Main.java,结果

false

 

四、 singleton

修改上面的beans-scope.xml,如下

    <bean id="car" class="com.hualinux.beans.autowire.Car" scope="singleton">
        <property name="brand" value="宝马x7"/>
        <property name="price" value="1500000"/>
    </bean>

运行com.hualinux.beans.scope.Main.java,结果

true

 

五、总结 

    使用bean的scope属性来配置bean的作用域

    singleton:默认值。容器初始时创建bean实例。在整个容器生命周期内只创建一个bean单实例

    prototype:原型的,容器初始化时不创建bean的实例,而是每次请求时都创建一个新的Bean实例,并返回。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值