Spring MVC Uygulama Çatısına Genel Bakış

Spring MVC ile Diğer Seçeneklerin Karşılaştırılması

Kod Gemisi, Eylül 2016
selam@kodgemisi.com

Spring Framework Nedir?

  • 2002 - "Best Practise"lerden oluşan kitap
  • 2003 - İlk public release
  • 2009 - versiyon 3 [Java Config]
  • 2014 - Spring Boot
  • 2016 - versiyon 4.3.x
  • 2017 - versiyon 5.0.0

Özgür Yazılım

Apache License v2.0

J2EE -> JavaEE

in 2014

Source: http://zeroturnaround.com/rebellabs/top-4-java-web-frameworks-revealed-real-life-usage-data-of-spring-mvc-vaadin-gwt-and-jsf/

in 2016

Source: http://zeroturnaround.com/rebellabs/java-tools-and-technologies-landscape-2016/

JavaEE vs Spring

Source: http://www.slideshare.net/reza_rahman/java-ee-and-spring-sidebyside-34320697

Component Based

vs

Request Based

(Action)

Component Based

Request Based

Component Based

  • Request/Response döngüsünü soyutlar
  • State'i sunucu yönetir
  • Kolay UI yazımı
  • Zor özelleştirme

Request Based (Action Based)

  • Request/Response doğrudan kullanılır
  • Aslında stateless ancak Session ile state sağlanır
  • Görece zor UI yazımı
  • HTML üzerinde tam kontrol
  • Kolay özelleştirme
<h:form>
    ...
    ...
    <p:commandButton value="Ajax Submit" actionListener="#{buttonView.buttonAction}" />
</h:form>

JSF

<form th:action="@{/users}" th:object="${user}" method="post">
  ...
  ...
  <input type="submit" value="Submit" />
</form>

Spring MVC

@ManagedBean
public class ButtonView {

    private User user;
     
    public String buttonAction(ActionEvent actionEvent) {
        doBusinessLogic(user);
        return "result";
    }
}
@Controller
public class GreetingController {

    @PostMapping("/greeting")
    public String createUser(@ModelAttribute User user) {
        doBusinessLogic(user);
        return "result";
    }
}

Request Tabanlı Frameworklerin Yükselişi

JSR 371: Model-View-Controller (MVC 1.0)

 

JavaEE 8

Template Engine

Only HTML + CSS + JS

VEYA

Template Kullanmak veya Kullanmamak

Natural Templating

JSP + JSTL

Teşekkürler

Spring Framework Tanıtım Sunumu

By KodGemisi

Spring Framework Tanıtım Sunumu

  • 534