Java
Stream kullanımı Java'da işlemlerin yürütme hızını etkileyecek mi?
Nesne yönelimli programlamada polimorfizm ve soyutlama kavramları arasındaki farkı açıklayabilir misiniz?
Kodu okuyun ve hataları vurgulayın /** * Satın alınmış bir bileti olan müşteri, ek ücret karşılığında belirli bir koltuk seçebilir. * Koltukların temel fiyatı, tarifeler (harici servis) tarafından belirlenir. * Belirli tarifelere (PREMIUM, ULTRA) sahip müşteriler için ödeme sırasında indirim yapılması gerekir. * Rezervasyon sırasında, ödeme için bir fatura düzenlenir. Ödeme yönetimi üçüncü taraf bir serviste gerçekleştirilir. */ @Service public class SeatBookingService { @Autowired private SeatBookingRepository seatBookingRepository; @Autowired private TicketRepository ticketRepository; @Autowired private TariffClient tariffClient; @Autowired private CustomerClient customerClient; @Autowired private PaymentClient paymentClient; /** * Rezervasyon. * @param seatCode koltuk kodu (örneğin 19A) * @param ticketId bilet kimliği */ @Transactional public void bookSeat(String seatCode, UUID ticketId) { var ticket = ticketRepository.findById(ticketId); //rezervasyon yapıyoruz var seatBooking = new SeatBooking(seatCode, ticket.get().getFlightId(), ticketId, BookingStatus.BOOKED); seatBookingRepository.save(seatBooking); //uçaktaki seçilen koltuk için temel tarifeyi buluyoruz var basePrice = tariffClient.getBasePrice(ticket.get().getPlaneModel(), seatCode); //müşteri verilerini buluyoruz Long userId = (Long) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); var userData = customerClient.getCustomer(userId); System.out.println("Bulunan kullanıcı " + userData.getFio() + " belge numarası " + userData.getDocument()); var price = basePrice; if (userData.getTariff() == "PREMIUM") { //%50 indirim price = basePrice * 0.5d; } if (userData.getTariff() == "ULTRA") { //%20 indirim price = basePrice * 0.8d; } var invoice = new Invoice(price, ticketId, userId); //faturayı gönder paymentClient.sendInvoice(invoice); System.out.println("Fatura gönderildi"); } @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; }
@Transactional anotasyonunda ayarlanabilecek farklı Propagation türleri hakkında konuşabilir misin?
Java'da nesneleri sıralarken Comparable ve Comparator arayüzleri arasındaki temel fark nedir?
Teknoloji alanında eğitim materyalleri ve güncellemeleri ararken hangi kaynakları kullanıyorsunuz?
MongoDB veritabanındaki farklı koleksiyonlar arasında bağlantılar kurmak mümkün mü?
Java ile çalışma ve bu dildeki ilk projelerinizi nasıl öğrenmeye başladınız?
Veritabanı sorguları nasıl oluşturulur?
Database-per-Service Deseni nedir?
SQL'de HAVING kullanırken gruplandırılmış verileri filtrelemek için sözdizimi nasıl gerçekleştirilir?
Spring çerçevesi neye dayanır?
Sistemlerde senkron ve asenkron veri iletimini nasıl ayırt edersiniz ve bunlar arasındaki fark nedir?
Sınıf hiyerarşisi dikkate alınarak yapıcılar ve başlatma bloklarının çağrı sırası nedir?
SQL Injection türü saldırının nasıl gerçekleştirildiğini ve veritabanındaki açıkları nasıl kullandığını açıklayabilir misiniz?
SQL ve NoSQL veritabanları arasındaki fark nedir?
@Bean anotasyonu nerede kullanılır?
Programlamada kalıtım ve ilişkilendirmeyi nerede kullanmak en iyisidir?
Bir metodun idempotansı nedir?
Projenizde Spring Security'de hangi kimlik doğrulama ve yetkilendirme yaklaşımı uygulanıyor?