Java
Utilizarea Stream va afecta viteza de execuție a operațiunilor în Java?
Puteți explica diferența dintre conceptul de polimorfism și abstractizare în programarea orientată pe obiecte?
Citiți codul și evidențiați erorile /** * Un client cu bilet cumpărat poate, contra unei taxe suplimentare, să aleagă un loc specific. * Prețul de bază al locurilor este determinat de tarife (serviciu extern). * Pentru clienții cu tarife specifice (PREMIUM, ULTRA), trebuie aplicată o reducere la plată. * La rezervare, se emite o factură pentru plată. Gestionarea plăților se face într-un serviciu terț. */ @Service public class SeatBookingService { @Autowired private SeatBookingRepository seatBookingRepository; @Autowired private TicketRepository ticketRepository; @Autowired private TariffClient tariffClient; @Autowired private CustomerClient customerClient; @Autowired private PaymentClient paymentClient; /** * Rezervare. * @param seatCode codul locului (de exemplu, 19A) * @param ticketId ID-ul biletului */ @Transactional public void bookSeat(String seatCode, UUID ticketId) { var ticket = ticketRepository.findById(ticketId); //rezervăm var seatBooking = new SeatBooking(seatCode, ticket.get().getFlightId(), ticketId, BookingStatus.BOOKED); seatBookingRepository.save(seatBooking); //căutăm tariful de bază pentru locul din avion var basePrice = tariffClient.getBasePrice(ticket.get().getPlaneModel(), seatCode); //căutăm datele clientului Long userId = (Long) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); var userData = customerClient.getCustomer(userId); System.out.println("Utilizator găsit " + userData.getFio() + " număr document " + userData.getDocument()); var price = basePrice; if (userData.getTariff() == "PREMIUM") { //reducere de 50% price = basePrice * 0.5d; } if (userData.getTariff() == "ULTRA") { //reducere de 20% price = basePrice * 0.8d; } var invoice = new Invoice(price, ticketId, userId); //emitere factură paymentClient.sendInvoice(invoice); System.out.println("Factură emisă"); } @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; }
Poți vorbi despre diferitele tipuri de propagare care pot fi setate în adnotarea @Transactional?
Care este diferența principală dintre interfețelele Comparable și Comparator în Java la sortarea obiectelor?
Ce surse folosești pentru a căuta materiale de studiu și actualizări în domeniul tehnologiei?
Este posibil să se stabilească legături între diferite colecții din baza de date MongoDB?
Cum ai început să înveți să lucrezi cu Java și despre primele tale proiecte în acest limbaj?
Cu ce se formează interogările către baza de date?
Ce este modelul Database-per-Service?
Cum se realizează sintaxa pentru filtrarea datelor grupate atunci când se utilizează HAVING în SQL?
Pe ce se bazează framework-ul Spring?
Cum se deosebesc transferul de date sincron și asincron în sisteme și în ce diferă acestea?
Care este ordinea de apelare a constructorilor și blocurilor de inițializare ținând cont de ierarhia claselor?
Puteți explica cum se realizează un atac de tip SQL Injection și cum exploatează vulnerabilitățile bazei de date?
Care este diferența dintre bazele de date SQL și NoSQL?
Unde este utilizată adnotarea @Bean?
Unde este cel mai bine să aplici moștenirea și asociația în programare?
Ce este idempotenta unei metode?
Ce abordare de autentificare și autorizare este implementată în Spring Security în proiectul dvs.?