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)
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
}
Code language: PHP (php)
Repostitorymizi oluşturalım.
@Repository
public interface StudentRepository extends JpaRepository<Student, Long> {
}
Code language: PHP (php)
Servisimizi oluşturalım
@Service
public class StudentService {
@Autowired
private StudentRepository studentRepository;
public void createStudent(Student student) {
studentRepository.save(student);
}
}
Code language: PHP (php)
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);
}
}
Code language: CSS (css)
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
Code language: PHP (php)
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
Code language: CSS (css)
diyerek paketleyip, Native uygulamamızın çalıştırma işlemini gerçekleştirebiliriz.
Sonrasında Native uygulamamız sorunsuz şekilde çalışacaktır.
No Comment! Be the first one.