Java
Ar Stream naudojimas paveiks Java operacijų vykdymo greitį?
Ar galite paaiškinti skirtumą tarp polimorfizmo ir abstrakcijos sąvokų objektinio programavimo srityje?
Skaitykite kodą ir pažymėkite klaidas /** * Klientas, įsigijęs bilietą, gali už papildomą mokestį pasirinkti konkretų vietą. * Pagrindinė vietų kaina nustatoma tarifais (išorinis paslaugų teikėjas). * Kai kuriems klientams su tam tikrais tarifais (PREMIUM, ULTRA) reikia taikyti nuolaidą apmokėjimo metu. * Rezervuojant klientui išrašomas sąskaita apmokėjimui. Mokėjimo valdymas vyksta išoriniuose servisuose. */ @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 vietos kodas (pvz., 19A) * @param ticketId bilieto ID */ @Transactional public void bookSeat(String seatCode, UUID ticketId) { var ticket = ticketRepository.findById(ticketId); // rezervuojame var seatBooking = new SeatBooking(seatCode, ticket.get().getFlightId(), ticketId, BookingStatus.BOOKED); seatBookingRepository.save(seatBooking); // ieškome bazinės kainos pasirinktam vietai lėktuve var basePrice = tariffClient.getBasePrice(ticket.get().getPlaneModel(), seatCode); // ieškome kliento duomenų Long userId = (Long) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); var userData = customerClient.getCustomer(userId); System.out.println("Rasta naudotojas " + userData.getFio() + " dokumento numeris " + userData.getDocument()); var price = basePrice; if (userData.getTariff() == "PREMIUM") { // 50% nuolaida price = basePrice * 0.5d; } if (userData.getTariff() == "ULTRA") { // 20% nuolaida price = basePrice * 0.8d; } var invoice = new Invoice(price, ticketId, userId); // išrašome sąskaitą paymentClient.sendInvoice(invoice); System.out.println("Sąskaita išrašyta"); } @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; }
Ar galite papasakoti apie skirtingus propagation tipus, kuriuos galima nustatyti @Transactional anotacijoje?
Kokia pagrindinė skirtumas tarp Comparable ir Comparator sąsajų Java kalboje, kai rūšiuojami objektai?
Kokius šaltinius naudojate mokymosi medžiagų ir naujinimų paieškai technologijų srityje?
Ar įmanoma sukurti ryšius tarp skirtingų kolekcijų MongoDB duomenų bazėje?
Kaip pradėjote mokytis dirbti su Java ir savo pirmuosius projektus šiame kalboje?
Kaip formuojami užklausos į duomenų bazę?
Kas yra Database-per-Service šablonas?
Kaip vykdoma sintaksė grupuotų duomenų filtravimui naudojant HAVING SQL?
Kuo grindžiamas Spring framework?
Kaip atskirti sinchroninį ir asinchroninį duomenų perdavimą sistemose ir kuo jie skiriasi?
Kokiu būdu kviečiami konstruktoriai ir inicializacijos blokai, atsižvelgiant į klasių hierarchiją?
Ar galite paaiškinti, kaip vyksta SQL Injection tipo ataka ir kaip ji išnaudoja duomenų bazės pažeidžiamumus?
Kuo skiriasi SQL ir NoSQL duomenų bazės?
Kur naudojama @Bean anotacija?
Kur geriausia taikyti paveldėjimą ir asociaciją programavime?
Kas yra metodo idempotentiškumas?
Kokiu požiūriu į autentifikaciją ir autorizaciją yra įgyvendinta jūsų projekte naudojant Spring Security?