Java
Quali servizi esterni hai utilizzato per integrare con il tuo sistema?
Cos'è Layout in log4j?
Come viene eseguita l'elaborazione del Servlet in condizioni di multithreading?
Quale proprietà viene usata per impostare il colore di sfondo?
Perché hashCode() di oggetti diversi può restituire valori uguali?
Come garantire l'unicità delle chiavi durante l'uso della struttura dati HashMap?
In quali situazioni può essere sollevata un'eccezione ClassCastException in un'applicazione?
In che modo è possibile confrontare i tipi di dati in Java?
Nel contesto della logica di business, è obbligatorio considerare tutti i campi dell'entità durante l'implementazione del metodo equals?
Chi ha gestito il controllo e la gestione dei database nel tuo ultimo progetto?
Hai applicato il livello di isolamento Repeatable Read nei tuoi progetti?
Potresti spiegare come avviene il passaggio degli argomenti per riferimento in programmazione?
Come è stato effettuato il processo di integrazione del microservizio nel tuo ultimo progetto e attraverso quale meccanismo?
Hai avuto casi di sviluppo o implementazione di un componente o meccanismo simile a Starter?
Spiega il concetto di denormalizzazione in un database e le sue conseguenze per il progetto.
Quali sono le principali differenze tra le annotazioni @RestController e @Controller in Spring?
L'uso di Stream influenzerà la velocità di esecuzione delle operazioni in Java?
Puoi spiegare la differenza tra polimorfismo e astrazione nella programmazione orientata agli oggetti?
Come organizzare calcoli paralleli e gestione dei thread in un software aziendale su larga scala?
Leggere il codice e evidenziare gli errori /** * Un cliente con un biglietto acquistato può, a pagamento, scegliere un posto specifico. * Il prezzo base dei posti è determinato dai tariffe (servizio esterno). * Per i clienti con tariffe specifiche (PREMIUM, ULTRA), è necessario applicare uno sconto al pagamento. * Durante la prenotazione, viene emessa una fattura per il pagamento. La gestione del pagamento avviene tramite un servizio esterno. */ @Service public class SeatBookingService { @Autowired private SeatBookingRepository seatBookingRepository; @Autowired private TicketRepository ticketRepository; @Autowired private TariffClient tariffClient; @Autowired private CustomerClient customerClient; @Autowired private PaymentClient paymentClient; /** * Prenotazione. * @param seatCode codice del posto (ad esempio 19A) * @param ticketId ID del biglietto */ @Transactional public void bookSeat(String seatCode, UUID ticketId) { var ticket = ticketRepository.findById(ticketId); //prenotiamo var seatBooking = new SeatBooking(seatCode, ticket.get().getFlightId(), ticketId, BookingStatus.BOOKED); seatBookingRepository.save(seatBooking); //cerchiamo la tariffa base per il posto sull'aereo var basePrice = tariffClient.getBasePrice(ticket.get().getPlaneModel(), seatCode); //cerchiamo i dati del cliente Long userId = (Long) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); var userData = customerClient.getCustomer(userId); System.out.println("Utente trovato " + userData.getFio() + " numero documento " + userData.getDocument()); var price = basePrice; if (userData.getTariff() == "PREMIUM") { //sconto del 50% price = basePrice * 0.5d; } if (userData.getTariff() == "ULTRA") { //sconto del 20% price = basePrice * 0.8d; } var invoice = new Invoice(price, ticketId, userId); //emetti la fattura paymentClient.sendInvoice(invoice); System.out.println("Fattura emessa"); } @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; }