您现在的位置是:首页 > 正文

Bean的六种作用域

2024-02-01 00:11:48阅读 3

限定程序中变量的可用范围叫做作用域,Bean对象的作用域是指Bean对象在Spring整个框架中的某种行为模式~~

Bean对象的六种作用域:

  1. singleton:单例作用域(默认)

  2. prototype:原型作用域(多例作用域)

  3. request:请求作用域(Spring MVC独有)

  4. session:会话作用域(Spring MVC独有)

  5. application:全局作用域(Spring MVC独有)

  6. websocket:HTTP WebSocket 作用域(我们这里不考虑)

singleton说明:该作用域下的Bean只存在一个实例(对象),获取Bean及注入Bean(装配Bean)都是同一个对象,它是默认的~~

prototype说明:该作用域下的Bean存在多个实例(对象),每获取一次Bean及注入一次Bean(装配一次Bean)就会创建出一个新的对象~~

request说明:每次http请求会创建一个新的Bean实例,限定SpringMVC中使用~~

session说明:每一个http session都会创建一个新的Bean实例,限定SpringMVC中使用~~

application说明:每一个应用创建一个新的Bean实例,限定SpringMVC中使用~~

设置Bean对象的作用域:

使用@Scope注解就可以设置Bean对象的作用域,它既可以修饰方法也可以修饰类,有两种设置方式:

  • 直接设置:@Scope("xxx"),"xxx"就是对应作用域的英文单词

  • 使用全局变量设置:@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE/...)

@Component
public class Users {
    @Bean(name = "user1")
    @Scope("prototype")
    public User user1() {
        User user = new User();
        user.setId(1);
        user.setName("Java");
        return user;
    }
}


@Component
public class Users {
    @Bean(name = "user1")
    @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
    public User user1() {
        User user = new User();
        user.setId(1);
        user.setName("Java");
        return user;
    }
}

网站文章

  • 激光SLAM与ROS中,map、odom、laser_link、base_link几个坐标系和坐标转换的理解

    激光SLAM与ROS中,map、odom、laser_link、base_link几个坐标系和坐标转换的理解

    由于SLAM过程中需要用到不同的传感器对环境进行感知和观测,而每一个传感器都应一种坐标系,所以在整个SLAM过程中涉及到非常多次的坐标变换,想要搞清楚SLAM的过程,需要对这些坐标变换有充分的理解,本文主要记录一下我对于激光SLAM中坐标变换的理解(ROS下)

    2024-02-01 00:11:19
  • 比特位计数-LeetCode338

    一、题目描述给你一个整数n,对于0 <= i <= n中的每个i,计算其二进制表示中1的个数,返回一个长度为n + 1的数组ans作为答案。示例一输入:n = 2输出:[0,1,1]解释:0 --> ...

    2024-02-01 00:11:12
  • 2021-01-08

    Search by pressing enter Hi,欢迎来到RioTianの博客. | 收藏 闪存 小组 博问 RioTian 关注 园龄:1年2个月 粉丝:68 关注:10 ???? langu...

    2024-02-01 00:11:05
  • 误删的文件咋恢复?

    误删的文件咋恢复?

    永久删除文件是很常见的数据恢复故障。在永久删除文件后如何恢复数据就显的尤为重要了,首先我们需要明白,在永久删除文件后不能往要恢复的误删文件所在的分区,存入任何新的文件,否则数据覆盖了就无力回天了。接下来我们还需要了解下具体如何恢复永久删除文件的文件,具体请看正文了解。

    2024-02-01 00:10:59
  • python小技巧

    想知道某类中的所有成员变量和函数 for temp in dir(request): print temp转载于:https://www.cnblogs.com/fanzi2009/archive/2009/11/10/1599881.html

    2024-02-01 00:10:31
  • spring mvc xss html,SpringMvc防御XSS实践

    项目在漏洞扫描时发现xss漏洞, 本以为是常见漏洞,网上有很多解决方案,应该能很快搞定,但实际上文章看了不少,却并未找到十分“顺手”的解决方案。历经波折终于完成了一套自己想要的方案,现将过程分享出来,...

    2024-02-01 00:10:25
  • cad面积计算机,AutoCAD如何测面积 AutoCAD面积计算方法

    cad面积计算机,AutoCAD如何测面积 AutoCAD面积计算方法

    在AutoCAD运用的实例中,我们常常需要测量所画图形的尺寸面积,如果通过手算的方式总会觉得特别麻烦,还容易出错,为此小编特意为大家准备了最全面的CAD面积计算方法,教你如何巧妙的使用AutoCAD完...

    2024-02-01 00:10:17
  • Jest 学习03 - Mock 函数、声明周期钩子

    Mock 函数Mock Functions(模拟函数)也被称为“spies”(间谍),官方文档:Mock Functions介绍Mock Functions 的使用方法是抹除函数的实际实现,捕获对函数...

    2024-02-01 00:09:47
  • 解析网页--BeautifulSoup-bs4-python爬虫知识点6

    BeautifulSoup 一、BeautifulSoup基本信息 定义 主要学bs4.BeautifulSoup,bs4内的一个非常好用的模块,美丽的汤,bs4:Beautiful Soup4 Be...

    2024-02-01 00:09:40
  • Maven传递依赖的原则

    maven引入的传递性依赖机制,一方面大大简化和方便了依赖声明,大部分情况下我们只需要关心项目的直接依赖是什么,而不永哥你考虑这些直接依赖会引入什么传递性依赖。但有时候,当歘地形依赖造成问题时,我们就需要清除知道该传递性依赖是从哪条依赖路径引入的。如下示例:1.依赖同一个jar包,深度不同:A->B->C->X(1.0)   依赖深度为3A->D->X(2.0)   依赖深度为2

    2024-02-01 00:09:34