Spring Anotasyonları Ne İşe Yarar?

Ayberk Gerey
3 min readDec 18, 2023

--

Bu yazıda Spring Boot anotasyonlarının ne işe yaradığından ve temel anotasyonlardan bahsedeceğim.

Hangi temel anotasyonun hangi görevde kullanıldığını aktarmaya çalışacağım.

Anotasyonlar (Annotations) bir çok kaynakta Türkçe’ye işaretleyici olarak çevrilmiştir. Anotasyonlar yazılan servisleri, controllerları, repository interface’leri ve birçok sınıfı işaretlemek, sahip olduğu konfigürasyonları ve bağımlılıkları belirtmek için kullanılır. Bunu bir tür kimlik etiketi olarak nitelendirebiliriz. Anotasyonlar başlarında “@“ işareti ile kullanılırlar.

Java ile daha önce çalıştıysanız @Override’a denk gelmişsinizdir Kısaca bahsetmek gerekirse parent class’a ait bir metodun ismi ve parametreleri değiştirilmeden, body’si değiştirilerek kullanılmasına olanak sağlar. Üstüne yazar fakat altındakini silmez tabiri caizse.

Spring projemizi initialize ettikten sonra bu main application class otomatik oluşturulur. Buradaki class üzerindeki @SpringBootAplication anotasyonu, Spring Boot uygulamasını başlatmak için gerekli olan anotasyondur.

Bu anotasyon üç anotasyonun kombinasyonundan oluşur.

@Configuration: Sınıfın bir konfigürasyon sınıfı olduğunu belirtir. Bu sınıflar genellikle @Bean metotları içerir.

@EnableAutoConfiguration: Otomatik konfigürasyonu etkinleştirir. Spring Boot, uygulamanın bağımlılıklarına bağlı olarak otomatik olarak bir dizi konfigürasyonu etkinleştirir.

@ComponentScan: Paket taramasını başlatır ve bu sınıfın bulunduğu paket ve altındaki sınıfları bileşen olarak tarar.

Peki yukarıda @Bean’den bahsetmiş olduk. Nedir bu Bean?

Spring’de Bean, Spring Framework tarafından yönetilen ve oluşturulan nesneleri ve metodları ifade etmek için kullanılır. Yazdığımız bir metodu Spring konteynerine bir bean olarak kaydetme olanağı sağlar. Spring IoC (Inversion of Control) konteyneri, bu bean’leri yönetir ve ihtiyaç duyulduğunda bu bean’leri oluşturarak ve yöneterek bağımlılıkları çözer.

@Bean anotasyonu aynı zamanda bean’leri yapılandırmak veya özelleştirmek için ek parametrelerle kullanılabilir. Örneğin, @Scope, @Primary, @Lazy gibi anotasyonlar ile bean’lerin davranışları ayarlanabilir.

@Primary: Birden fazla aday arasında birincil (primary) bean’i belirtir.

Şimdi en çok kullanılan temel anotasyonlardan bir kaçına göz atalım.

@Component: Component Sınıflarını işaretler

@Controller: Spring MVC kontrolü yapılan sınıfları işaretler.

@Service: Yazılan Service sınıflarını işaretler

@Repository: Veri tabanı işlemlerini gerçekleştirdiğimiz sınıfları işaretler.

Ayrıca;

@Autowired: Dependency Injection yapılan alanları, setter ve constructorları işaretler. Gerekli bağımlılıkları otomatik olarak bulup enjekte eder.

@RequestBody Genellikle POST veya PUT istekleri sırasında isteğin gövdesinde bulunan verileri almak için kullanılır.

Anotasyonların işlevlerine ve ne işe yaradıklarına bu yazıda giriş yapmış olduk. Bir sonraki yazımda görüşmek üzere…

--

--

Ayberk Gerey
Ayberk Gerey

No responses yet