java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Bean的作用域

关于Java中Bean的作用域详解

作者:Mᴇᴇᴛ ꦿ᭄.

这篇文章主要介绍了关于Java中Bean的作用域详解,限定程序中变量的可⽤范围叫做作⽤域,或者说在源代码中定义变量的某个区域就叫做作⽤域,需要的朋友可以参考下

1.作用域定义

限定程序中变量的可⽤范围叫做作⽤域,或者说在源代码中定义变量的某个区域就叫做作⽤域。

⽽ Bean 的作⽤域是指 Bean 在 Spring 整个框架中的某种⾏为模式,⽐如 singleton 单例作⽤域,就表示 Bean 在整个 Spring 中只有⼀份,它是全局共享的,那么当其他⼈修改了这个值之后,那么另⼀个⼈读取到的就是被修改的值。

2.Bean 的 6 种作用域

Spring 容器在初始化⼀个 Bean 的实例时,同时会指定该实例的作⽤域。

Spring常见的有 6 种作⽤域,最后四种是基于 Spring MVC ⽣效的:

  1. singleton:单例作⽤域
  2. prototype:原型作⽤域(多例作⽤域)
  3. request:请求作⽤域
  4. session:会话作⽤域
  5. application:全局作⽤域
  6. websocket:HTTP WebSocket 作⽤域

注意后 4 种状态是 Spring MVC 中的值,在普通的 Spring 项⽬中只有前两种

singleton

prototype

request

session

application(了解)

websocket(了解)

单例作⽤域(singleton) VS 全局作⽤域(application)

3. 设置作⽤域

使⽤ @Scope 标签就可以⽤来声明 Bean 的作⽤域,⽐如设置 Bean 的作⽤域,如下代码所示:

@Component
public class Users {
 @Scope("prototype")
 @Bean(name = "u1")
 public User user1() {
 User user = new User();
 user.setId(1);
 user.setName("Java"); // 【重点:名称是 Java】
 return user;
 }
}

@Scope 标签既可以修饰⽅法也可以修饰类,@Scope 有两种设置⽅式:

到此这篇关于关于Java中Bean的作用域详解的文章就介绍到这了,更多相关Bean的作用域内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文