[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");
    }
}
相关推荐
007php0079 分钟前
mac笔记本中在PHP中调用Java JAR包的指南
java·ide·python·面试·职场和发展·pycharm·php
sheji341617 分钟前
【开题答辩全过程】以 母婴店购物系统为例,包含答辩的问题和答案
java
哪里不会点哪里.18 分钟前
Spring 中常用注解详解
java·后端·spring
草莓熊Lotso22 分钟前
Qt 控件美化与交互进阶:透明度、光标、字体与 QSS 实战
android·java·开发语言·c++·人工智能·git·qt
zbguolei1 小时前
Springboot上传文件与物理删除
java·spring boot·后端
鸽鸽程序猿1 小时前
【JavaEE】【SpringCloud】网关_GateWay
spring cloud·java-ee·gateway
jay神1 小时前
基于SpringBoot的校园社团活动智能匹配与推荐系统
java·前端·spring boot·后端·毕业设计
可以吧可以吧1 小时前
idea全家桶【常见报错处理】当出现 “We could not validate your license ... “ 提示时
java·ide·intellij-idea
装不满的克莱因瓶1 小时前
IDEA rebuild project 到底有什么作用?
java·ide·intellij-idea
Java程序员威哥1 小时前
Arthas+IDEA实战:Java线上问题排查完整流程(Spring Boot项目落地)
java·开发语言·spring boot·python·c#·intellij-idea