Adım 1: Spring Boot Projesi Oluşturma
İlk olarak, Spring Boot projesi oluşturmanız gerekiyor. Bu örnekte, Maven kullanacağız.
- VS Code’u açın ve bir proje klasörü oluşturun. Proje klasörünü açmak için
File
>Open Folder
‘ı tıklayın ve bir klasör seçin. - VS Code’un sol kenar çubuğunda,
Extensions
ikonuna tıklayın veSpring Boot Extension Pack
aramak için arama kutusunu kullanın.Spring Boot Extension Pack
eklentisini yükleyin ve kurulumu tamamlayın. - Sol kenar çubuğunda,
Explorer
bölmesinde, projenizin kök klasörüne sağ tıklayın veOpen in Terminal
seçeneğini seçin. - Açılan terminal penceresinde, aşağıdaki komutu yazarak Spring Boot uygulaması için temel yapıyı oluşturun:
spring init --dependencies=web,data-jpa,h2 my-spring-boot-app
Yukarıdaki komut, web
, data-jpa
ve h2
bağımlılıklarını içeren bir Spring Boot uygulaması oluşturur. my-spring-boot-app
, oluşturmak istediğiniz uygulamanın adıdır. Bu adı değiştirebilirsiniz.
- Komut çalıştırıldıktan sonra, projenizde birkaç dosya ve klasör oluşacaktır. Bu dosyalar, projenizde Spring Boot uygulamanızı oluşturmanıza yardımcı olacaktır.
- Projenizi VS Code’da açın ve
src/main/java
altındakicom.example.demo
paketindeDemoApplication.java
adlı bir sınıf oluşturun. Bu sınıf, uygulamanızın giriş noktasıdır.
Adım 2: Veritabanı Bağlantısını Yapılandırma
Şimdi, H2 veritabanına bağlanmak için Spring Boot’u yapılandırmamız gerekiyor. Bu örnekte, application.properties
dosyasında yapılandıracağız.
spring.h2.console.enabled=true spring.datasource.url=jdbc:h2:mem:testdb spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password= spring.jpa.database-platform=org.hibernate.dialect.H2Dialect spring.h2.console.path=/h2-console
Yukarıdaki ayarlar, gömülü H2 veritabanına bağlanmamızı sağlar. spring.h2.console.enabled
özelliği, H2 veritabanı konsolunu etkinleştirir. spring.datasource.url
özelliği, veritabanı URL’sini belirtir. spring.datasource.driverClassName
özelliği, veritabanı sürücüsünü belirtir. spring.jpa.database-platform
özelliği, Hibernate tarafından kullanılacak veritabanı platformunu belirtir.
Şekil 1. h2-console Ekranı
CREATE TABLE person (
id BIGINT NOT NULL AUTO_INCREMENT,
firstName VARCHAR(255) NOT NULL,
lastName VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);
Şekil 2. h2-console Ekranı-2
Adım 3: Veritabanı Tablosu ve Test Verileri Oluşturma
Şimdi, H2 veritabanında bir tablo oluşturmanız gerekiyor. Bu örnekte, “Person” adlı bir tablo oluşturacağız. Ayrıca, tabloya birkaç test verisi de ekleyeceğiz.
import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; @Entity public class Person { @Id @GeneratedValue private Long id; private String firstName; private String lastName; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getFirstName() { return firstName; } public void setFirstName(String
Adım 4: Restful Web Servislerini Ekleme
Şimdi, RESTful web servislerimizi oluşturacağız. Bu örnekte, “Person” adlı bir RESTful web servisi oluşturacağız.
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Optional; @RestController @RequestMapping("/person") public class PersonController { @Autowired private PersonRepository personRepository; @PostMapping public Person savePerson(@RequestBody Person person) { return personRepository.save(person); } @GetMapping public List<Person> getPersons() { return personRepository.findAll(); } @GetMapping("/{id}") public Optional<Person> getPerson(@PathVariable Long id) { return personRepository.findById(id); } @PutMapping("/{id}") public Person updatePerson(@PathVariable Long id, @RequestBody Person person) { person.setId(id); return personRepository.save(person); } @DeleteMapping("/{id}") public void deletePerson(@PathVariable Long id) { personRepository.deleteById(id); } }
Yukarıdaki sınıf, “Person” tablosundaki verilerin alınmasını, ekleme, güncelleme ve silme işlemlerini gerçekleştirmek için kullanılır. “Person” nesnelerinin oluşturulmasını sağlamak için @RequestBody
kullanılır. Ayrıca, @GetMapping
ve @PostMapping
gibi farklı HTTP yöntemlerini kullanarak web servislerimizi tanımlarız.
Adım 5: Veritabanı Erişim Katmanını Oluşturma
Şimdi, veritabanına erişmek için bir erişim katmanı oluşturacağız. Bu örnekte, JPA (Java Persistence API) kullanacağız.
import org.springframework.data.jpa.repository.JpaRepository; public interface PersonRepository extends JpaRepository<Person, Long> { }
Yukarıdaki sınıf, “Person” tablosuna erişmek için JpaRepository arayüzünü genişletir. JpaRepository, veritabanına erişmek için bir dizi hazır yöntem sağlar. Bu nedenle, PersonRepository sınıfını manuel olarak bir sorgu oluşturmaya gerek kalmadan, veritabanına erişmek için kullanabilirsiniz.
Adım 6: Uygulamayı Başlatma
Son olarak, uygulamanızı başlatmanız gerekiyor. Bu örnekte, Spring Boot uygulamasını “H2demoApplication” sınıfı ile başlatıyoruz.