Java Spring Anotasyonları

Java Spring Framework, Java uygulamalarının geliştirilmesi için popüler bir framework’tür. Bu framework, birçok farklı yerde kullanılan anotasyonlar kullanarak uygulamanızın yapısını ve işleyişini optimize etmenizi sağlar.

Bu yazıda, Java Spring Framework içinde kullanabileceğiniz en yaygın anotasyonları inceleyeceğiz.

  1. @Autowired: Bu anotasyon, bir nesnenin otomatik olarak oluşturulmasını ve enjekte edilmesini sağlar. Örneğin, bir sınıf içinde bir bağımlılık olduğunda ve bu bağımlılık Spring tarafından yönetilen bir nesne olarak tanımlanmışsa, @Autowired anotasyonu kullanarak bu nesnenin otomatik olarak oluşturulmasını ve enjekte edilmesini sağlayabilirsiniz. Örnek olarak, bir Service sınıfının bir Repository sınıfına ihtiyacı varsa, Service sınıfında @Autowired kullanarak Repository sınıfının nesnesinin otomatik olarak oluşturulmasını ve enjekte edilmesini sağlayabilirsiniz.
  2. @Controller: Bu anotasyon, bir sınıfın bir MVC kontrolcüsü olduğunu belirtir. Kontrolcü sınıfları, kullanıcının isteğini işleyen ve uygun bir yanıt döndüren sınıflardır. Kontrolcü sınıfları, @Controller anotasyonu ile işaretlenir ve Spring tarafından otomatik olarak tanımlanır.
  3. @Service: Bu anotasyon, bir sınıfın bir hizmet sınıfı olduğunu belirtir. Hizmet sınıfları, uygulamanızın gerçek iş mantığını içeren sınıflardır. Hizmet sınıfları, @Service anotasyonu ile işaretlenir ve Spring tarafından otomatik olarak tanımlanır.
  4. @Repository: Bu anotasyon, bir sınıfın bir veritabanı erişim katmanı olduğunu belirtir. Repository sınıfları, veritabanına erişmek için kullanılan sınıflardır. Repository sınıfları, @Repository anotasyonu ile işaretlenir ve Spring tarafından otomatik olarak tanımlanır.
  5. @Component: Bu anotasyon, bir sınıfın bir parçası olduğunu belirtir. @Controller, @Service ve @Repository gibi diğer anotasyonlar, @Component anotasyonunun bir alt kümesidir. Bu anotasyonu, uygulamanızda kullanabileceğiniz diğer sınıflar için kullanabilirsiniz. Örneğin, bir sınıfın bir utiliti sınıfı olduğunu belirtmek için @Component anotasyonunu kullanabilirsiniz.
  6. @RequestMapping: Bu anotasyon, bir metod veya sınıf için istek yönlendirmesini tanımlar. Örneğin, bir metodun /customer/create adresiyle çağrılmasını sağlamak için @RequestMapping(“/customer/create”) anotasyonunu kullanabilirsiniz. Bu anotasyon, @RequestParam ve @PathVariable gibi diğer anotasyonlarla birlikte kullanılabilir.
  7. @RequestParam: Bu anotasyon, bir metodun çağrılması sırasında gönderilen bir parametreyi almasını sağlar. Örneğin, bir metodun /customer/create adresiyle çağrılması sırasında gönderilen “firstName” parametresini almasını sağlamak için @RequestParam(“firstName”) String firstName anotasyonunu kullanabilirsiniz.
  8. @PathVariable: Bu anotasyon, bir metodun çağrılması sırasında gönderilen bir yol değişkenini almasını sağlar. Örneğin, bir metodun /customer/{id} adresiyle çağrılması sırasında gönderilen “id” değişkenini almasını sağlamak için @PathVariable(“id”) int id anotasyonunu kullanabilirsiniz.
  9. @ModelAttribute: Bu anotasyon, bir metodun çağrılması sırasında gönderilen bir nesnenin alınmasını ve kullanılmasını sağlar. Örneğin, bir müşteri kaydı formunun gönderilmesi sırasında gönderilen müşteri bilgilerini almak için @ModelAttribute(“customer”) Customer customer anotasyonunu kullanabilirsiniz.
  10.  @SessionAttributes: Bu anotasyon, bir sınıfın oturum verilerini saklamasını sağlar. Örneğin, bir alışveriş sepeti sınıfının oturumda saklanmasını sağlamak için @SessionAttributes(“cart”) anotasyonunu kullanabilirsiniz. Bu sayede, kullanıcının oturumu boyunca alışveriş sepeti bilgileri saklanır ve kullanıcının diğer sayfalarda erişebilmesi mümkün olur.