018 使用@Scope完成bean的作用域的声明

一 .概述

在spring之中常用的Bean的生命周期常见的有单例模型和多例模型.

我们可以使用@Scope完成声明.



二 [email protected]

[1]创建组件

public class Car {

}
public class Bike {

}

[2]创建配置类

@Configuration
public class ScopeConfig {

    @Bean
    public Car car() {
        return new Car();
    }

    @Bean
    @Scope("prototype")
    public Bike bike() {
        return new Bike();
    }
}

[3] 测试类

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = ScopeConfig.class)
public class ScopeTest {
    @Autowired
    private ApplicationContext context;

    @Test
    public void test1() {
        System.out.println(context.getBean("car") == context.getBean("car"));
        System.out.println(context.getBean("bike") == context.getBean("bike"));
    }

查看运行结果:

true
false

我们通过结果就知道Bean的Scope了.

原文地址:https://www.cnblogs.com/trekxu/p/9094866.html

时间: 2024-10-14 14:14:03

018 使用@Scope完成bean的作用域的声明的相关文章

Spring学习记录(五)---bean的作用域scope

作用域:singleton:单例,整个应用中只创建一个实例(默认) prototype:原型,每次注入时都新建一个实例 session:会话,每个会话创建一个实例 request:请求,每个请求创建一个实例 默认情况下,bean都是单例的,在下面这样时初始化,调用各个bean的构造函数 1 <bean id="person" class="com.guigu.spring.autowire.Person" 2 p:name="Tom" &g

spring之bean的作用域scope的值的详解

今天研究了一下scope的作用域.默认是单例模式,即 scope="singleton".另外scope还有prototype.request.session.global session作用域.scope="prototype"多例.再配置bean的作用域时,它的头文件形式如下: 如何使用spring的作用域: <bean id="role" class="spring.chapter2.maryGame.Role"

Spring中bean的作用域scope详解

摘自<Spring 解密>scope用来声明IOC容器中的对象应该处的限定场景或者说该对象的存活空间,即在IOC容器在 对象进入相应的scope之前,生成并装配这些对象,在该对象不再处于这些scope的限定之后,容器通常会销毁这些对象.打个比方吧!我们都是处在社会 (容器)中,如果把中学教师作为一个类定义,那么当容器初始化这些类之后,中学教师只能局限在中学这个场景中,中学,就可以看做中学教师的scope. Spring容器最初提供了两种bean的scope类型:singleton和 proto

【spring教程之四】spring中bean的作用域

1. <bean id="stage" class="com.test.pro.Stage"> 在spring中,bean默认都是单例的,也就是说,spring容易只会实例化一次,在以后的每次调用中,都会使用同一个实例.下面的例子可以说明: 2.测试类 package com.test.pro; import org.springframework.context.ApplicationContext; import org.springframewor

Spring初学之bean之间的关系和bean的作用域

一.bean之间的关系 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.o

8 -- 深入使用Spring -- 2...2 指定Bean的作用域

8.2.2 指定Bean的作用域 当使用XML 配置方式来配置Bean实例时,可以通过scope来指定Bean实例的作用域,没有指定scope属性的Bean实例作用域默认是singleton. 当采用零配置方式来管理Bean实例时,可使用@Scope Annotation,只要在该Annotation中提供作用域的名称即可. package edu.pri.lime._8_2_2.bean.impl; import org.springframework.context.annotation.S

Spring bean的作用域和生命周期

bean的作用域 1.singleton,prototype, web环境下:request,session,gloab session 2.通过scope="" 来进行配置 3.对于singleton  spring容器只会创建一个共享实例,prototype则会创建不同的实例 bean的生命周期(bean自身的方法,bean级生命周期接口方法,容器级生命周期接口方法) 分为BeanFactory的生命周期和ApplicationContext的生命周期 1.对于BeanFactor

spring bean的作用域和自动装配

1 Bean的作用域 l  singleton单列:整个容器中只有一个对象实例,每次去访问都是访问同一个对象  默认是单列 l  prototype原型: 每次获取bean都产生一个新的对象,比如Action l  request:每次请求时创建一个新的对象 l  session:在会话的范围内是一个对象,http那个session l  global session:只在portlet下有用,表示application l  application:在应用范围内有效 注意:配置action的时

spring中bean的作用域

Spring中bean的作用域可以在xml配置文件(一般叫bean.xml或ApplicationContext.xml)中通过scope属性进行指定. 在Spring中,bean对象可以有多种作用域 singletion 默认的,每个IOC容器只创建一个Bean实例 prototype每次请求创建一个Bean实例 request每次http请求创建一个实例 session每次会话创建一个实例 globalsession每个全局Http请求创建一个实例