[英]Spring @Service Concurency
@Slf4j
@Service
public class BookingServiceImpl implements BookingService {
private final AirTicketService airTicketService ;
@Autowired
public BookingServiceImpl (AirTicketService airTicketService) {
this.airTicketService = airTicketService;
}
@Transactional
@Override
public boolean bookTicket(Customer customer) {
return this.airTicketService.reserve(customer);
}
}
如果有 10 個線程每次都用全新的客戶對象調用 BookingServiceImpl 類的 bookTicket(Customer customer) 方法,那么有沒有可能發生線程干擾,客戶對象會被 BookingService 和 AirTicketService 的單例 bean 毒害?
我認為你的問題不清楚,我不明白你所說的“中毒”是什么意思。 您可以查看此鏈接以了解多線程調用服務類:
https://www.baeldung.com/spring-singleton-concurrent-requests
如果有 10 個線程調用bookTicket
方法,則它們之間共享airTicketService
對象,並使用全新的客戶對象調用reserve
方法。 我認為您最好考慮使用reserve
方法來了解客戶對象會發生什么。 如果reserve 與共享對象沒有任何關系(比如說AirTicketService
類),線程可能會修改每個線程不同的客戶對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.