top of page
Yazarın fotoğrafıEnes İyidil

Spring Framework ile Uygulama Geliştirme: Başlangıçtan İleri Seviyeye Kapsamlı Rehber


Spring Framework, Java platformunda kurumsal düzeyde uygulamalar geliştirmek için kullanılan popüler ve güçlü bir çerçevedir. Bu rehberde, Spring Framework'ün ne olduğunu, kullanım amacını, neden tercih edilmesi gerektiğini ve nasıl kullanılacağını adım adım öğreneceksiniz. Ayrıca, bir örnek proje üzerinden pratik yaparak öğrendiklerinizi pekiştireceksiniz.


Spring Framework Nedir?

Spring Framework, açık kaynaklı bir uygulama geliştirme çerçevesidir. Modüler yapısı sayesinde geliştiricilere esneklik sunar ve geniş bir ekosistem ile desteklenir.


Spring Framework'ün Kullanım Amacı ve Avantajları

  • Modüler Yapı: Spring, farklı modüller sayesinde ihtiyaca göre özelleştirilebilir.

  • Bağımlılık Yönetimi: Spring'in bağımlılık enjeksiyonu (Dependency Injection) özelliği, kodun daha esnek ve test edilebilir olmasını sağlar.

  • Geniş Ekosistem: Spring Boot, Spring Data, Spring Security gibi ek projelerle genişletilebilir.

  • Topluluk Desteği: Spring, büyük bir geliştirici topluluğu tarafından desteklenir.


Örnek Proje: Basit Bir RESTful Web Servisi Geliştirme

Bu bölümde, Spring Boot kullanarak basit bir RESTful web servisi oluşturacağız.


Adım 1: Proje Yapılandırması

Spring Initializr kullanarak bir Spring Boot projesi oluşturun.


Adım 2: Proje Yapısı

Proje yapısını inceleyin ve gerekli dosyaları ekleyin.


Adım 3: Model Sınıfı Oluşturma
package com.example.demo.model;

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;

@Entity
public class Employee {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    private String name;
    
    private String role;

    // Getters and Setters
}
Adım 4: Repository Sınıfı
package com.example.demo.repository;

import com.example.demo.model.Employee;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface EmployeeRepository extends JpaRepository<Employee, Long> {
}
Adım 5: Servis Sınıfı
package com.example.demo.service;

import com.example.demo.model.Employee;
import com.example.demo.repository.EmployeeRepository;
import org.springframework.stereotype.Service;

import java.util.Optional;

@Service
public class EmployeeService {
    
    private final EmployeeRepository repository;

    public EmployeeService(EmployeeRepository repository) {
        this.repository = repository;
    }
    
    public Employee save(String name, String role) {
        
        Employee employee = new Employee();
        employee.setName(name);
        employee.setRole(role);
        
        return repository.save(employee);
    }
    
    public Employee update(Employee employee) {
        
        return repository.save(employee);
    }
    
    public Employee get(Long id) {

        Optional<Employee> optionalEmployee = repository.findById(id);
        if (optionalEmployee.isPresent()) {
            return optionalEmployee.get();
        }
        throw new RuntimeException("Employee Not Found");
    }
    
    public Boolean delete(Long id) {
        
        Optional<Employee> optionalEmployee = repository.findById(id);
        if (optionalEmployee.isPresent()) {
            repository.delete(optionalEmployee.get());
            return true;
        }
        throw new RuntimeException("Employee Not Found");
    }
}
Adım 6: Controller Sınıfı
package com.example.demo.controller;

import com.example.demo.model.Employee;
import com.example.demo.service.EmployeeService;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/employee")
public class EmployeeController {

    private final EmployeeService service;

    public EmployeeController(EmployeeService service) {
        this.service = service;
    }

    @PostMapping
    public ResponseEntity<Employee> save(@RequestParam String name, @RequestParam String role) {

        return ResponseEntity.ok(service.save(name, role));
    }
    
    @PutMapping
    public ResponseEntity<Employee> update(@RequestBody Employee employee) {
        
        return ResponseEntity.ok(service.update(employee));
    }
    
    @GetMapping("/{id}")
    public ResponseEntity<Employee> get(@PathVariable("id") Long id) {
        
        return ResponseEntity.ok(service.get(id));
    }
    
    @DeleteMapping("/{id}")
    public ResponseEntity<Boolean> delete(@PathVariable("id") Long id) {

        return ResponseEntity.ok(service.delete(id));
    }
}
Adım 7: Uygulamayı Başlatma

Spring Boot uygulamasını başlatın ve RESTful servisi test edin.


Spring Framework, esnek ve modüler yapısıyla kurumsal düzeyde uygulamalar geliştirmek için ideal bir araçtır. Bu rehberde, Spring Boot kullanarak basit bir RESTful web servisi oluşturmayı öğrendiniz. İleri seviye konulara geçerek Spring'in diğer özelliklerini keşfetmeye devam edebilirsiniz.


Bu makale, Spring Framework hakkında temel bilgileri ve basit bir proje örneğini içermektedir. Gelişmiş konulara geçerek Spring'in gücünü daha derinlemesine keşfetmek için harika bir başlangıç olacaktır.


Proje Linki

0 görüntüleme0 yorum

Son Yazılar

Hepsini Gör

Comments


bottom of page