Spring Boot - Bilinmesi Gereken Bazı Bilgiler

Web geliştirme ile ilgili konuları burada bulabilirsiniz
Cevapla
Kullanıcı avatarı
melihcelenk
Site Admin
Mesajlar: 212
Kayıt: 05 Eki 2021, 03:23

Spring Boot - Bilinmesi Gereken Bazı Bilgiler

Mesaj gönderen melihcelenk »

Buraya Spring Boot ile ilgili bilinmesi gereken bazı bilgileri rastladıkça ekleyeceğim.
  • Oluşturduğumuz controller main sınıfımızın bulunduğu pakette değilse ana sınıfımızın başına aşağıdaki şekilde bir annotation eklenmelidir.
    @ComponentScan("com.paket.ismi")
  • Wildcard import'lar gereksiz alan kullanır. IntelliJ varsayılan ayarlarında 5 tane sınıftan sonrasını wildcard'a çeviriyor. Sadece kullandığımız paketleri import etmek için IntelliJ'de ayar değişikliği yapmamız gerekiyor.
    https://stackoverflow.com/questions/334 ... rd-imports
  • Bir sıralama yapmak istediğimizde findAllByXXXXOrderByXXXX gibi bir formatta Repository içine metot yazabiliriz. Ancak findAll için order yapmak istediğimizde Repository içine bir metot yazmadan direkt çağırdığımız serviste aşağıdaki gibi bir kullanım yapabiliriz:

    Kod: Tümünü seç

    List<Scenario> scenarios = scenarioRepository.findAll(Sort.by("scenarioId"));
  • Sorun: @Value annotation'u olan bir sınıfı bir servis içinde kullandığımızda @Value ile tanımlanan değişkenlerin null dönmesi
    Çözüm:
    @Value annotation'ını kullandığımız MobileCommunication isimli bir sınıfımız olsun. @Component olarak tanımlıyoruz.

    Kod: Tümünü seç

    @Component
    public class MobileCommunication {
    
        @Value("${some.variable}")
        private String someVariable;
        
        public MobileCommunication() {
        }
      
        public void doSomething(){
            System.out.println(someVariable);
        }
    }
    Diğer servisten component haline getirdiğimiz sınıfı çağırıyoruz.

    Kod: Tümünü seç

    @Service
    public class MyService {
    
        private final MobileCommunication mobileCommunication;
    
        public MyService(MobileCommunication mobileCommunication) {
            this.mobileCommunication = mobileCommunication;
        }
    
        public void myMethod() {
            mobileCommunication.doSomething();
        }
    }
    
Cevapla