在SpringMVC中使用请求作用域创建一个名为“java.lang.string”的bean

iugsix8n  于 2021-08-25  发布在  Java
关注(0)|答案(2)|浏览(323)

我有配置类 SpecialEventsConfig .
我正在尝试初始化string类型的请求范围bean。

@Bean("requestTime")
    public String getRequestTime() {
        return String.valueOf(System.nanoTime());
    }

这是可行的,但它将初始化一个单例。我想用它初始化请求范围的字符串。

@Bean("requestTime")
    @RequestScope(proxyMode = ScopedProxyMode.TARGET_CLASS)// Tried NO and INTERFACES as well
    public String getRequestTime() {
        return String.valueOf(System.nanoTime());
    }

这可以解决我的问题,但不幸的是它不起作用。
有没有办法实现这种行为?

zlwx9yxi

zlwx9yxi1#

我想你可以试试这个解决办法。

@Bean("requestTime")
@RequestScope(proxyMode = ScopedProxyMode.TARGET_CLASS)
public Supplier<String> getRequestTime() {
    long time = System.nanoTime();
    return () -> String.valueOf(time);
}
dwthyt8l

dwthyt8l2#

要使用bean的请求范围,您可以使用

@Scope(value = WebApplicationContext.SCOPE_REQUEST, proxyMode = ScopedProxyMode.TARGET_CLASS)

@RequestScope

相关问题