Java
Jaké externí služby jste použili pro integraci se svým systémem?
Co je to Layout v log4j?
Jak je zpracováváno Servlet v podmínkách vícenásobného vlákna?
Jaká vlastnost se používá k nastavení barvy pozadí?
Proč může hashCode() různých objektů vracet stejné hodnoty?
Jak zajistit jedinečnost klíčů při použití datové struktury HashMap?
V jakých situacích může být v aplikaci vyhozena výjimka ClassCastException?
Jakými způsoby lze porovnávat datové typy v Javě?
Je v kontextu podnikové logiky povinné zohlednit všechna pole entity při implementaci metody equals?
Kdo prováděl kontrolu a správu databází ve vašem posledním projektu?
Používali jste úroveň izolace Repeatable Read ve svých projektech?
Můžete vysvětlit, jak se v programování provádí předání argumentů odkazem?
Jak byl v posledním projektu realizován integrační proces mikroservisu a jakým mechanismem?
Měli jste případy vývoje nebo implementace komponenty nebo mechanismu podobného Starteru?
Vysvětlete koncept denormalizace v databázi a její důsledky pro projekt.
Jaké jsou hlavní rozdíly mezi anotacemi @RestController a @Controller ve Springu?
Ovlivní použití Stream rychlost provádění operací v Java?
Můžete vysvětlit rozdíl mezi pojmy polymorfismus a abstrakce v objektově orientovaném programování?
Jak zorganizovat paralelní výpočty a správu vláken ve velkém podnikových softwarových systémech?
Přečtěte si kód a zvýrazněte chyby /** * Klient s koupeným lístkem může za příplatek vybrat konkrétní místo. * Základní cena míst je určena tarify (externí služba). * Pro klienty s určitými tarify (PREMIUM, ULTRA) je třeba při platbě poskytnout slevu. * Při rezervaci je vystavena faktura k úhradě. Správa plateb probíhá v externí službě. */ @Service public class SeatBookingService { @Autowired private SeatBookingRepository seatBookingRepository; @Autowired private TicketRepository ticketRepository; @Autowired private TariffClient tariffClient; @Autowired private CustomerClient customerClient; @Autowired private PaymentClient paymentClient; /** * Rezervace. * @param seatCode kód místa (např. 19A) * @param ticketId ID lístku */ @Transactional public void bookSeat(String seatCode, UUID ticketId) { var ticket = ticketRepository.findById(ticketId); //rezervujeme var seatBooking = new SeatBooking(seatCode, ticket.get().getFlightId(), ticketId, BookingStatus.BOOKED); seatBookingRepository.save(seatBooking); //najdeme základní tarif pro místo v letadle var basePrice = tariffClient.getBasePrice(ticket.get().getPlaneModel(), seatCode); //najdeme údaje o zákazníkovi Long userId = (Long) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); var userData = customerClient.getCustomer(userId); System.out.println("Nalezen uživatel " + userData.getFio() + " číslo dokumentu " + userData.getDocument()); var price = basePrice; if (userData.getTariff() == "PREMIUM") { //50% sleva price = basePrice * 0.5d; } if (userData.getTariff() == "ULTRA") { //20% sleva price = basePrice * 0.8d; } var invoice = new Invoice(price, ticketId, userId); //vystavíme fakturu paymentClient.sendInvoice(invoice); System.out.println("Faktura odeslána"); } @Data @Table("seat_booking") public class SeatBooking { @Column private String seatCode; @Column private UUID flightId; @Column private UUID ticketId; @Column private BookingStatus status; } public enum BookingStatus { BOOKED, PAID; }