Spring Native

Spring Native Uygulama Örneği

Önceki yazımda Spring Native Nedir? adlı yazımda ne olduğundan bahsetmiştim. Şimdi ise örnek bir uygulama nasıl yaparız uygulamayı yaparken dikkat etmemiz gereken durumlar var mı birlikte inceleyelim.

Projemizde basit bir CRUD uyglaması yapacağız. Bu uygualamada kullanacağımız maven bağımlılıklarımız aşağıdaki gibi olacaktır.

  • Native
  • Spring Boot Web Starter
  • Spring Data
  • H2 (Veritabanımız)
blank
Spring Native Örnek Uygulaması

https://start.spring.io/ adresinden bu kütüphaneleri seçerek bir proje oluşturabiliriz. Bu projeyi indirelim ve IDE’mizde açalım.

Yapacağımız uygulamanın amacı Öğrencilerimizin bilgileri kaydeden bir uygulama yapalım. Örnek uygulamamız aslında normal bir spring projesinden farkı olmayacak. Uygulama rest bir servis olacak ve rest olarak gönderilen öğrenci bilgilerini H2 veritabanına kaydedecek.

Student Entitysini oluşturalım.

@Table(name = "Student")
public class Student {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    private String name;
    private String surname;

//Getter Setter Constructor
}

Repostitorymizi oluşturalım.

@Repository
public interface StudentRepository extends JpaRepository<Student, Long> {
   
}

Servisimizi oluşturalım

@Service
public class StudentService {
    
    @Autowired
    private StudentRepository studentRepository;

    public void createStudent(Student student) {
        studentRepository.save(student);
    }
 
}

Ve son olarak controllerimizi oluşturalım.

@RestController
@RequestMapping("/students")
public class StudentController {

    @Autowired
    private StudentService studentService;

    @PostMapping
    public void createStudent(@RequestBody Student student) {
        studentService.createStudent(student);
    }

}

Uygulamayı Çalıştırma


Native projesini direk çalıştırmak isteğimde konsol ekranında aşağıdaki hata ile karşılaştım.

***************************
APPLICATION FAILED TO START
***************************

Description:

The ApplicationContext could not start as 'org.springframework.aot.StaticSpringFactories' that is generated by the Spring AOT plugin could not be found.

Action:

Review your local configuration and make sure that the Spring AOT plugin is configured properly.
If you're trying to run your application with 'mvn spring-boot:run', please use 'mvn package spring-boot:run' instead.
See https://docs.spring.io/spring-native/docs/current/reference/htmlsingle/#spring-aot for more details.


Process finished with exit code 1

Bu hata oldukça önemli her zaman kullandığımız Spring’den farkını çalıştırma anında hissettik bunun nedeni ise uygulamamız Native uygulamamamızı Sprint AOT tarafından derleneceği için çalıştırmadan önce buna uygun bir paketleme edilmektedir. Bu derleme işlemini her seferine native uyglama için aşağıdaki gibi paketleme işlemini yapmak zorudayız. Bunun için

mvn spring-aot:generate

diyerek paketleyip, Native uygulamamızın çalıştırma işlemini gerçekleştirebiliriz.

Sonrasında Native uygulamamız sorunsuz şekilde çalışacaktır.

DAHA FAZLASI:Spring Native

YORUM YAP

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir