问题标签 [requestscope]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1435 浏览

spring-boot - @Timed 注释不适用于请求范围的 bean?

我有一个具有请求范围的 bean,其中有一个用 micrometer(io.micrometer.core.annotation) @Timed 注释的方法,但它没有显示在指标中。它显示 bean 是否在默认范围内(单例)。

它不应该与请求范围一起使用还是我缺少什么。

0 投票
1 回答
136 浏览

unit-testing - 如何测试 Ninject Factory 在 RequestScope 中返回相同的实例

在 WebApi 应用程序中,我使用 Ninject 注入一个工厂,该工厂允许消费类创建一个DbContext根据其要求限定范围的工厂。我希望能够编写一个单元测试来验证对请求范围上下文的同一工厂的两次调用是否返回相同的实例。

出厂界面为:

Ninject 配置如下所示:

我的单元测试如下:

我希望对工厂的两个调用都返回相同的实例,但实际上它们是两个不同的实例。我认为这是应用程序中的一个测试错误,我已经能够成功验证同一个实例在调用该GetContext()方法时被注入到不同的消费者中。

我怀疑这在单元测试中不起作用,因为没有HttpContext并且InRequestScope()取决于它。有办法解决这个问题吗?

0 投票
0 回答
43 浏览

jsf - 为什么单独的 RequestScoped bean 没有注入到 JSF commandButton 动作调用的 bean 中?

出于什么原因,使用相同范围的注入辅助 bean 不包含来自提交的表单数据?使用来自(JSF)commandButton 动作的参数的显式方法调用..

我已经求助于在调用 bean 中包含相同的参数,然后它就可以正常工作了。但这很烦人,因为我宁愿 A. 不要像疯了一样传递东西, B. 在几个地方重用一组特定的设置。

运行我的应用程序的环境是 Wildfly 11,以下问题发生在 Windows 机器上,但将在 Linux 上的生产环境中运行。

我的网页和相关 bean 的相关代码:

为什么一个 bean 正确地填充了表单数据而不是另一个?

0 投票
0 回答
31 浏览

c# - What should be the scope of AmazonS3Client object in a web application?

I want to use AWS SDK for .Net to read and write to an S3 bucket, from a web application.

What should be the scope of AmazonS3Client client?

Looking at ASW sample code they are using a static s3Client:

Can I create a static client, for the entire life-time of the application and use the same client for all the web requests?

Or should I create one client per request? i.e. the scope of the object is the web request (as in this example):

If I use the later option, then the web application will potentially create multiple connections to the S3 bucket at the same time, because different users are using the website simultaneously).

0 投票
1 回答
841 浏览

java - 使用 Spring Boot 在侦听器中调用带有 @RequestScope 注释的类

org.springframework.beans.factory.BeanCreationException:创建名为“scopedTarget.movi​​mentacaoEntradaRadarNotaBuilderImpl”的bean时出错:范围“请求”对于当前线程无效;如果您打算从单例中引用它,请考虑为该 bean 定义一个作用域代理;嵌套异常是 java.lang.IllegalStateException:未找到线程绑定请求:您是指实际 Web 请求之外的请求属性,还是在原始接收线程之外处理请求?如果您实际上是在 Web 请求中操作并且仍然收到此消息,那么您的代码可能在 DispatcherServlet/DispatcherPortlet 之外运行:在这种情况下,请使用 RequestContextListener 或 RequestContextFilter 来公开当前请求。

我需要在不删除@RequestScope 的情况下解决问题,这仅适用于这种情况,而不适用于整个项目。

0 投票
0 回答
275 浏览

java - 依赖注入与请求范围

我有一个 Spring Rest 应用程序,其中需要在服务(带有注释的@Service)类中获取一些访问令牌。令牌生成在一个单独的类中(用 注释@Component),并且给出的要求是为每个新请求获取一个唯一的令牌。我将在服务类的同一个请求中使用生成的令牌两次。现在问题如下。

我可以使用@Autowired. 并获取令牌,将其存储在类内的私有实例变量中,并在服务类中的任何我想要的地方使用它。只要请求有效,它是否是存储应该存在的值的正确方法。当我测试这种方法时,我发现单个请求的服务类中的方法打印了相同的访问令牌。这里会出什么问题?

我尝试的另一种方法是WebApplicationContext.SCOPE_REQUEST在 TokenGenerator 类上使用,并在我的服务类中使用 Provider 来获取类实例,然后从中访问令牌。这也与以前的方法相同。如果是这样,为什么我什至需要使用请求范围值的方法?

方法一: 这里我使用了依赖注入来获取访问令牌。

方法 2: 这里我使用了 RequestScope 来获取访问令牌。并使用 Provider 获取服务类中的实例。

0 投票
1 回答
804 浏览

spring - 具有 Java 继承的 @RequestScope 注释行为

假设我们有一堂课

和扩展上述类的另一个类

此类 B 的变量(它从 A 扩展)是请求范围的变量吗?

UPD

我正在浏览弹簧代码,它说

/** * Constant for the default scope name: {@code ""}, equivalent to singleton * status unless overridden from a parent bean definition (if applicable). */ public static final String SCOPE_DEFAULT = "";

还,

返回"singleton"

@RequestScope但是如果我用这个属性更改标记 B 类""
,我假设sigleton又是

0 投票
1 回答
171 浏览

spring - 如何在 Spring Boot 中使用自定义 grant_type 缓存 OAuth2RestTemplate?

我见过类似的线程,但我的不同之处在于我使用的是自定义grant type. 为您提供背景知识,当我们从另一个微服务调用微服务时,我们使用一个delegation令牌,其中包含发起调用的用户的详细信息。因此,用户U1调用S1S1调用S2,以便S2U1详细信息用于审计和许可目的。

现在要实现这一点,我们有以下配置OAuth2RestTemplate

如您所见OAuth2ClientContext,必须在request范围内,否则将使用以前的用户详细信息,并且不会为第二个用户生成令牌,依此类推。

但这会对性能产生一些影响。当我们有许多并发用户时,效果变得更加明显。因此,作为一种解决方案,我正在考虑缓存OAuth2ClientContext每个用户,并将缓存到期设置为小于令牌到期的值。尽管缓存过期并不是真正的问题,因为每个令牌都会在得到这一点之前进行验证。

现在的问题是我如何实现这一目标,最好的方法是什么?根据我的理解,我需要将范围从默认 Spring bean 的范围更改requestsingleton类似,然后在缓存中没有条目时以某种方式使其创建一个新实例?不知道如何做到这一点?

0 投票
1 回答
479 浏览

spring - 请求范围 bean 异常和 @ControllerAdvice

我有一个自定义 Spring BootAutoConfiguration类,我正在其中创建@RequestScop自定义类的 ed bean - Foo。在同一个AutoConfiguration类中,我正在创建一个全局异常处理程序的 bean,它是一个@ControllerAdvice. 所有这些类都打包为 jar,并在我的其他 Spring Boot Web 应用程序中用作依赖项。每当控制器方法中出现异常时,都会在我的全局异常处理程序中调用适当的异常处理程序,除非在 中出现异常时FooBeanCreationException会抛出 a 并且不会调用任何全局异常处理程序。我尝试@Order(Ordered.HIGHEST_PRECEDENCE)按照一些 SO 答案中的建议添加,但没有一个有效。是否可以在全局异常处理程序中处理此类请求范围的 bean 异常 - a @ControllerAdvice?非常感激。

编辑 这是我的AutoConfiguration课。(这是在另一个罐子里)

这是MyGlobalExceptionHandler(这是在另一个罐子里)

0 投票
0 回答
132 浏览

java - Spring:请求范围的 bean 如何在异步方法调用中表现

我正在使用 Spring Boot 2.2.4。

我有以下类,其中 Client 是请求范围的 bean:

load 方法在控制器中调用。请求在 execute() 方法在异步 load() 方法产生的另一个线程中启动之前完成。

仍然执行方法确实成功完成。为什么请求 Scoped bean 仍然可用,即使请求之前已经完成?

如果发送两个请求,也会发生。绑定到第二个请求的客户端是否会替换第一个请求中的客户端,以便第一个请求触发的异步方法将执行与第二个请求中的客户端的调用?