Spring Boot - mfmese/microservice GitHub Wiki
-
Dependency (bağımlılık) yönetimi daha kolaydır.
-
Farklı Build ve deployment seçeneklerine sahiptir. ## Spring boot kurulum
-
start.spring.io web sitesi springboot initialzr üzerinden spring boot başlangıç dosyaları oluşturulur. Proje structure oluşturulmuş olur.
-
pom.xml içerisinde
-
* parent xml içerisinde <artifactId>spring-boot-starter-parent</artifactId> değeri ile spring boot başlatılır.
-
* dependency olarak spring boot dahil edilen 2 temel bağımlılık vardır. Bunlar;
-
* * spring-boot-starter
-
* * spring-boot-starter-test
-
* Bunların dışında maven dependency olarak otomatik gelen bağımlılıklarda bulunur. Bunlar en çok kullanılan 20 kütüphanedir. Örn; mochito, junit, etc.
-
Dependency hierarchy tabında tüm bağımlılıkları categoric olarak görebiliyoruz. ## Spring Boot çalıştırma
-
mouse sağ tık yapıp "Run As" → JUnit test ile başlattığımızda spring boot ait test kütüphanesi çalışarak yazılmış testler çalışır.
-
mouse sağ tık yapıp "Run As" → Spring Boot App tıklarsak. spring boot projesi çalıştırılır. # Çalıştırma sonrası arka planda neler oluyor
-
public static void main(String[] args) kod bloğu çalıştırılır.
-
* Spring Framework reference documentation (java based configuration) belirtilen configurasyonlar çalıştırılmış olur.
-
@SpringBootApplication main üzerinden çalıştırılır. Bu anotation sayesinde arka planda 3 farkı configurasyon çalışmış olur.
-
* Combination of @Configuration (configuration dosyalarını belirler ve java beans dosyalarını belirler.
-
* @ComponentScan (@Components içerisinde bulunan dosyaları tarar)
-
* @EnableAutoConfiguration (runtime da springboot configurasyonlarını yükler. ApplicationContext ve class pathlerini ayarlar. Intellignet defaults bağlı olan kayıp beans dosyalarını oluşturur) # Spring Boot Web
-
spring-boot-starter-web dependency olarak eklenir.
-
* dependency eklenmesi ile spring-web, spring-mvc jars eklenmiş olur.
-
* Tomcat jars eklenmiş olur.
-
Web application başlatıldığında;
-
* beans dosyaları oluşturulur
-
* @EnableAutoConfiguration beans dosyalarını aşağıdaki şekilde arar;
-
* * beands + classpath bağlı configurasyonları arar
-
* * @Controller/spring mvc jars dosyaları dikkate alınır.
-
* MVC beans otomatik olarak oluşturulur.
-
* * DispatcherServlet, HandlerMappings, Adapters, ViewResolvers eklenir.
-
* * Tomcat instace başlatılır.
-
Spring MVC birçok view opsiyonunu desteklemektedir.
-
JSP, Freemarker, Velocity ve Thymeleaf kullanmak kolaydır.
-
Boot otomatk olarak yapılır. # JAR dan WAR’a dönüştürmek
-
pom xml içerisinde packaging jar yerine war değiştirmek gerekiyor
-
SpringBootServletInitializer olarak extend etmek gerekiyor.
-
* public class Application extends SpringBootServletInitializer{}
-
app server’a deployment yapmak.
-
* url http://localhost:8080/<app>/ olarak görüntülenir.
-
pom.xml dependency içerisine spring-boot-starter-thymeleaf eklenir.
-
src/main/resources klasörüne templates adında yeni bir klasör oluştur.
-
templates içerisinde yeni bir index.html dosyası oluştur.
-
Controller içerisinde oluşturmuş olduğun servis return olarak templates deki dosya ismini return yapsın. return "index".
@RequestMapping("/index/{name}") public String welcome(Map model, @PathVariable String name) { model.put("name",name); return "index"; }
-
JSP web-relative klasörlerine yerleştirin
-
spring.mvc.view.prefix/spring.mvc.view.suffix olarak değiştirin.
-
thymeleaf starter pom.xml den silin