簡體   English   中英

Spring @Service 並發性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM