gpt4 book ai didi

java - 用于序列化@RequestBody的单例bean有多个对象

转载 作者:行者123 更新时间:2023-12-02 09:40:59 26 4
gpt4 key购买 nike

我有一个以下 spring 托管 bean。

@Entity
@Component
@JsonIgnoreProperties({"hibernateLazyInitializer","handler"})
public class Offer {
// fields and getter, setters toString hashtag
}

以及以下端点。

@PostMapping
public ResponseEntity<Offer> publishOffer(@RequestBody Offer offer) throws InterruptedException {
System.out.println (Thread.currentThread ().getName ());
System.out.println ("Before thread sleep => " + offer);
Thread.currentThread ().sleep (90000);
System.out.println ("After thread sleep => " + offer + "from thread " + Thread.currentThread ().getName ());
return null;
}

@RequestBody 模型,即 Offer 是单例。我特意添加了 Sleep(90000) 。我在收到垃圾邮件后 90 秒内发出了 3 个请求。

由于 Offer bean 是一种单例 bean,因此在 spring 容器中应该只有一个对象。

为什么我得到 3 个不同的 Offer bean 对象?

After thread sleep => Offer{jobTitle='Manager'}from thread http-nio-8080-exec-1
After thread sleep => Offer{jobTitle='Sr. Software 1'}from thread http-nio-8080-exec-2
After thread sleep => Offer{jobTitle='Sr. Software 4'}from thread http-nio-8080-exec-3

最佳答案

根据您的注释,该对象可能由 spring 管理,但传入的 requestBody 不是 spring 管理的 bean。看看@john Doe 的回答。解释得很好 How to understand Bean in Spring?为了验证这一点,尝试从 IOC 容器中检索 bean 并打印它,它应该是单例

关于java - 用于序列化@RequestBody的单例bean有多个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57062208/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com