Sobes.tech

Puteți explica diferența dintre conceptul de polimorfism și abstractizare în programarea orientată pe obiecte?

Junior — Middle
212

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; }

Senior
ТБанк
212

Poți vorbi despre diferitele tipuri de propagare care pot fi setate în adnotarea @Transactional?

Junior — Middle
212

Ce surse folosești pentru a căuta materiale de studiu și actualizări în domeniul tehnologiei?

Junior — Middle
212

Este posibil să se stabilească legături între diferite colecții din baza de date MongoDB?

Junior — Middle
212

Cum ai început să înveți să lucrezi cu Java și despre primele tale proiecte în acest limbaj?

Junior — Middle
212

Cu ce se formează interogările către baza de date?

Junior
212

Pe ce se bazează framework-ul Spring?

Junior
212

Care este diferența dintre bazele de date SQL și NoSQL?

Junior
212

Unde este utilizată adnotarea @Bean?

Middle
212

Unde este cel mai bine să aplici moștenirea și asociația în programare?

Middle
212

Ce este idempotenta unei metode?

Junior
212

Ce abordare de autentificare și autorizare este implementată în Spring Security în proiectul dvs.?

Junior — Middle
Консалтика
212

Care este diferența dintre metodele de cerere HTTP?

Junior
212

Ce este interfața AutoCloseable și cum funcționează construcția try-with-resources în Java?

Middle
212

De ce bazele de date sunt mai bune decât fișierele text?

Junior
212

Ce este încapsularea în programare?

Intern
212

Ce mecanism de încărcare a datelor se utilizează atunci când se folosește JOIN FETCH în ORM?

Junior — Middle
СБЕРСБЕР
212

Ce abordări și metode permit prevenirea apariției problemelor atunci când mai multe fire de execuție lucrează simultan cu o resursă comună?

Junior — Middle
212

Pe ce se bazează expresiile lambda?

Middle
212
/726