springboot使用request作用域创建bean

本文详细介绍了在SpringBoot中如何创建并使用Request作用域的Bean,包括创建步骤、使用方法以及需要注意的事项。特别指出,如果不设置proxyMode,启动时可能会遇到'Scope 'request' is not active for the current thread'的异常,因为默认不代理会导致请求作用域的Bean注入失败。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建:

    @Bean
    @Lazy
    @Scope(value = WebApplicationContext.SCOPE_REQUEST, proxyMode = ScopedProxyMode.TARGET_CLASS)
    public SsoUser ssoUser() {
        //TODO: find auth info from RPC context, http header, cookie, and validate it
		return new SsoUser();
    }

使用:

@Service
public static class ResourceService{
    @Resource
    SsoUser ssoUser;

    public void listResources(){
      if(ssoUser!=null).....
    }
}

注意:

如果在第一步中不设置proxyMode,在启动时会报异常,比如’Scope ‘request’ is not active for the current thread’。因为这个参数的默认值是不代理,然而在上面的例子中,ResourceService在启动时只会注入SsoUser 这个bean一次,而由于ssoUser这个bean是request作用域,注入就会失败。可以参考这个文章的解释:csdn blog 79121887

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值