Java
Koje spoljne usluge ste koristili za integraciju sa vašim sistemom?
Šta je Layout u log4j?
Kako se vrši obrada Servlet-a u uslovima višestrukog niti?
Koja svojstvo se koristi za postavljanje boje pozadine?
Zašto hashCode() različitih objekata može vraćati iste vrednosti?
Kako garantovati jedinstvenost ključeva pri korišćenju strukture podataka HashMap?
U kojim situacijama može biti bačena iznimka ClassCastException u aplikaciji?
Na koje načine se mogu porediti tipovi podataka u Javi?
Da li je obavezno uzeti u obzir sva polja entiteta prilikom implementacije metode equals u kontekstu poslovne logike?
Ko je vršio kontrolu i upravljanje bazama podataka u vašem poslednjem projektu?
Da li ste primenjivali nivo izolacije Repeatable Read u svojim projektima?
Можете ли објаснити како се врши пренос аргумената по референци у програмирању?
Kako je proces integracije mikroservisa sproveden u vašem poslednjem projektu i putem kojeg mehanizma?
Da li ste imali slučajeve razvoja ili implementacije komponente ili mehanizma sličnog Starteru?
Објасните концепт денормализације у бази података и њене последице за пројекат.
Koje su glavne razlike između anotacija @RestController i @Controller u Springu?
Da li će korišćenje Stream uticati na brzinu izvršavanja operacija u Javi?
Можете ли објаснити разлику између појмова полиморфизма и апстракције у објектно-оријентисаном програмирању?
Kako organizovati paralelne proračune i upravljanje nitima u velikom korporativnom softveru?
Pročitajte kod i istaknite greške /** * Klijent sa kupljenom kartom može za dodatnu naknadu odabrati određeno mesto. * Osnovna cena mesta određuje se tarifama (spoljni servis). * Za klijente sa određenim tarifama (PREMIUM, ULTRA) potrebno je napraviti popust pri plaćanju. * Pri rezervaciji, klijentu se izdaje račun za plaćanje. Upravljanje plaćanjem vrši se putem spoljnog servisa. */ @Service public class SeatBookingService { @Autowired private SeatBookingRepository seatBookingRepository; @Autowired private TicketRepository ticketRepository; @Autowired private TariffClient tariffClient; @Autowired private CustomerClient customerClient; @Autowired private PaymentClient paymentClient; /** * Rezervacija. * @param seatCode kod mesta (npr. 19A) * @param ticketId ID karte */ @Transactional public void bookSeat(String seatCode, UUID ticketId) { var ticket = ticketRepository.findById(ticketId); //rezervišemo var seatBooking = new SeatBooking(seatCode, ticket.get().getFlightId(), ticketId, BookingStatus.BOOKED); seatBookingRepository.save(seatBooking); //tražimo osnovnu cenu za odabrano mesto u avionu var basePrice = tariffClient.getBasePrice(ticket.get().getPlaneModel(), seatCode); //tražimo podatke o klijentu Long userId = (Long) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); var userData = customerClient.getCustomer(userId); System.out.println("Pronađen korisnik " + userData.getFio() + " broj dokumenta " + userData.getDocument()); var price = basePrice; if (userData.getTariff() == "PREMIUM") { //popust 50% price = basePrice * 0.5d; } if (userData.getTariff() == "ULTRA") { //popust 20% price = basePrice * 0.8d; } var invoice = new Invoice(price, ticketId, userId); //izdajemo račun paymentClient.sendInvoice(invoice); System.out.println("Račun izdat"); } @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; }