[JAVAee]spring-Bean对象的作用域

分类

Bean对象的作用域分成六大类:

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

singleton-单例作用域

描述:

该作用域下的Bean对象在IOC容器下只存在一个实例,哪一个类对其的获取与装配都是对同一个Bean对象操作.

使用场景:

无状态的Bean对象通常使用songleton作为作用域,无状态即表示Bean对象不进行数据的修改.

备注:

是spring中Bean对象的默认作用域.


prototype-多例作用域

描述:

该作用域下的Bean对象在IOC容器下会在每次请求时定义新的实例对象.

使用场景:

有状态的Bean对象使用,即属性需要更新


request-请求作用域

描述:

每次http请求都会定义新的实例对象

使用场景:

一次http请求和响应中共享的Bean对象


session-会话作用域

描述:

在一个http的session中定义一个实例对象

使用场景:

用户会话的共享Bean对象,在记录用户信息的时候可以使用.


application-全局作用域

描述:

在一个http servlet context中,定义一个实例对象

使用场景:

Web应用的上下文,记录一个应用的共享信息.


websocket-HTTP WebSocket 作⽤域

描述:

在一个websocket周期中定义一个实例对象

使用场景:

WebSocket的每次会话中,保存了⼀个Map结构的头信息,将⽤来包裹客户端消息头。第⼀

次初始化后,直到WebSocket结束都是同⼀个Bean

设置作用域

使用@scope注解就可以声明Bean对象的作用域

①可以对方法注解使用

java 复制代码
@Scope("prototype")
@Bean
public UserBean user1(){
    UserBean userBean = new UserBean();
    userBean.name = "haha";
    return userBean;
}

②也可以对类注解使用

java 复制代码
@Scope("prototype")
@Service//添加Service注解
public class UserService {
    private String name;
    public void hello(){
        System.out.println("service-hello");
    }
}
相关推荐
xcl09256 小时前
北京24小时自助健身房系统软件开发实战:从架构到部署全流程指南
java·spring boot·架构
一 乐7 小时前
动漫书销售商城|基于springboot + vue动漫书销售商城(源码+数据库+文档)
java·数据库·vue.js·spring boot·毕业设计
卓怡学长8 小时前
w214基于jsp知道特产网
java·intellij-idea
步行cgn8 小时前
Spring 注解使用详解
java·spring
一条小小yu8 小时前
Spring IoC的理解
java·后端·spring
落魄实习生8 小时前
Agent Scope Java 2.x 系列【7】工具使用
java·开发语言·ai
旺仔学长 哈哈9 小时前
springboot钓鱼爱好者交流平台APP设计与实现
java·spring boot·mysql·充电桩管理系统
自强的小白10 小时前
核心功能(Service接口)
java·mybatis
乌暮11 小时前
深入理解 Java 泛型:把「万能盒子」用对、用稳
java·开发语言·后端·学习