Framework & W eb M VC


         M uharrem TAÇ
          M artı Bilişim
        www.martisoft.com
Spring Framework Nedir


2004 yılından itibaren Rod Johnson tarafından geliştirilen, topluluk
desteğiyle hızla büyüyen Jav...
Spring Framework Nedir
Neden Spring MVC ?


•Web uygulamalarında modern tasarım desenleri (design patterns)
kullanmaktadır,

•Veri bindirme (data...
IoC
    (Inversion of Control)
              ve
Interface Driven Development
IoC Inversion of Control


Uygulamalarda new çağrısı ile yaratılan nesneler 2 temel soruna neden
  olmaktadır:

1. Her sef...
IoC Inversion of Control


Örneğin bir dao için

UserDao userDao = new UserDao();

Şeklinde bir tanımlama ile projede oluş...
IoC Inversion of Control


Oysa elimizde sadece metotların olduğu bir interface olsa ve bu
interface’ten türeyecek sınıfla...
IoC Inversion of Control


Peki bu interface ne zaman ve nasıl kullanılacak?

İşte Spring’in büyüsü burada başlıyor…
Konfi...
Spring Web MVC
Spring Web MVC Genel Akış

Yönetimi Spring Framework’e burakılmış web uygulamalarında tüm
request ve response’lar öncelikl...
Spring Web MVC



Dispatcher
 Servlet
Spring Web MVC Kurulum

  web.xml içerisinde tanımlama:
<servlet>
  <servlet-name>servlet adı   </servlet-name>
  <servlet...
Spring Web MVC Kurulum

Spring 2.0’a kadar olan dönemde tek bir spring.jar var iken Spring
2.5’den sonra jarlar aşağıdaki ...
Controller
Controller

Controller mekanizması DispatcherServlet araclığıyla gelen requestler
ile iş katmanı (business tier) arasında ...
Controller - SimpleFormController
org.springframework.web.servlet.mvc.SimpleFormController

Spring form nesnesi ile gelen ...
Spring Form
Spring Form
İçerisinde model objelerini bulunduran klasik POJO nesnesidir.

Formun içindeki model objesinin new ile yaratı...
Spring Form Validator
org.springframework.validation.Validator ‘den implemente
olurlar içlerinde iki önemli methodları bul...
Spring Form Validator
Spring konfigürasyonunda FormController’ın tanımlandığı
bean içerisinde bağlanırlar.
<bean name=quot...
SORU – CEVAP BÖLÜMÜ
Teşekkürler
 Muharrem TAÇ
   Martı Bilişim
mtac@martisoft.com
Upcoming SlideShare
Loading in …5
×

Spring Framework

3,739 views

Published on

Genç Girişimciler Spring Semineri

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,739
On SlideShare
0
From Embeds
0
Number of Embeds
758
Actions
Shares
0
Downloads
120
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Spring Framework

  1. 1. Framework & W eb M VC M uharrem TAÇ M artı Bilişim www.martisoft.com
  2. 2. Spring Framework Nedir 2004 yılından itibaren Rod Johnson tarafından geliştirilen, topluluk desteğiyle hızla büyüyen Java ve J2EE Frameworküdür, Tüm Java Teknolojilerine doğal destek vermektedir, Yeni nesil yazılım mimarilerini desteklemektedir,(AOP, IoC…) Çok büyük projelerde rüştünü ispatlamıştır, Interface driven development önermektedir.
  3. 3. Spring Framework Nedir
  4. 4. Neden Spring MVC ? •Web uygulamalarında modern tasarım desenleri (design patterns) kullanmaktadır, •Veri bindirme (data bindings) kolayca gerçekleştirilmektedir, •Form nesnesi sayesinde denetim (form validation) ve hata yakalama (error handling) basitleştirilmiştir, •Çeşitli gösterim (view) teklolojilerini desteklemektedir, JSP, Apache Velocity…
  5. 5. IoC (Inversion of Control) ve Interface Driven Development
  6. 6. IoC Inversion of Control Uygulamalarda new çağrısı ile yaratılan nesneler 2 temel soruna neden olmaktadır: 1. Her seferinde yeniden yaratılmakta ve yeniden GC tarafından sonlandırılmaktadır. Bu bir işlem maliyetidir. 1. Proje sürerken olası değişiklikler için kodun içinde refactoring gerektirmektedir.
  7. 7. IoC Inversion of Control Örneğin bir dao için UserDao userDao = new UserDao(); Şeklinde bir tanımlama ile projede oluşacak veritabanı değişmeleri (Oracle, MySQL…) için ayrı ayrı dao’lar çağırmak zorunda kalınacaktır. OracleUserDao oracleUserDao = new OracleUserDao(); MySqlUserDao dbUserDao = new MySqlUserDao(); .. ..
  8. 8. IoC Inversion of Control Oysa elimizde sadece metotların olduğu bir interface olsa ve bu interface’ten türeyecek sınıfları ayrı bir konfigürasyonda tutsak sorun ortadan kalkacak. interface’i bu methodları kullanacak sınıfa dahil ederken de klasik POJO mantığıyla ekleyebiliriz. UserDao userDao; public UserDao getUserDao() { return userDao; } public void setUserDao(UserDao userDao) { this.userDao = userDao; }
  9. 9. IoC Inversion of Control Peki bu interface ne zaman ve nasıl kullanılacak? İşte Spring’in büyüsü burada başlıyor… Konfigürasyonda hangi interface’e hangi class’ın karşılık geldiğini yazarak UYGULAMA BAŞLADIĞI ZAMAN classların birer sigleton olarak yaratılmasını sağlıyoruz. <bean id=quot;userDaoquot; class=quot;com.marti.UserDaoImpl” /> <bean id=quot;userDaoquot; class=quot;com.marti.OracleUserDaoImpl” />
  10. 10. Spring Web MVC
  11. 11. Spring Web MVC Genel Akış Yönetimi Spring Framework’e burakılmış web uygulamalarında tüm request ve response’lar öncelikle DispatcherServlet tarafından karşılanır. DispatcherServlet kendisine gelen talebe göre ve set edilmiş Controller’ı çağırır. Controller iş mantığını uygulayacak manager’ları ve/veya model objelerini kullanarak sonuçta ModelAndView nesnesi döndürür. ViewResolver set edilmiş olan view objesine yönlenir ve sayfa görüntülenir.
  12. 12. Spring Web MVC Dispatcher Servlet
  13. 13. Spring Web MVC Kurulum web.xml içerisinde tanımlama: <servlet> <servlet-name>servlet adı </servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>servlet adı</servlet-name> <url-pattern>*.uzantı</url-pattern> </servlet-mapping> Spring konfigürasyom dosyası adı: /WEB-INF/[servlet adı]-servlet.xml
  14. 14. Spring Web MVC Kurulum Spring 2.0’a kadar olan dönemde tek bir spring.jar var iken Spring 2.5’den sonra jarlar aşağıdaki gibi ayrılmıştır: -spring.jar -spring-web.jar -spring-webmvc.jar ModelAndView nesnesine bindirilecek dataların gösterimi için yaygın olarak kullanılan JSTL ve Displaytag jarları: -jstl.jar -standard.jar -displaytag.jar Ve neredeyse tüm librarylerin gereksinim duyduğu jakarta-commons jarları…
  15. 15. Controller
  16. 16. Controller Controller mekanizması DispatcherServlet araclığıyla gelen requestler ile iş katmanı (business tier) arasında bulunur, İş katmanından dönen sonuçları bir ModelAndView nesnesine bindirir, AbstractConroller BaseCommandController AbstractCommandController AbstractFormController SimpleFormController AbstractWizardController MultiActionController ParameterizableViewController
  17. 17. Controller - SimpleFormController org.springframework.web.servlet.mvc.SimpleFormController Spring form nesnesi ile gelen datayı işler, İçerisindeki yararlı methodlar ile request yaşam döngüsünü birbirinden ayırır ve kolaylaştırır. formBackingObject() : controller’da ilk çalışan methoddur ve Form nesnesini hazırlar. referenceData() : sayfaya gönderilecek listeleri yükleyen methoddur. initBinder() : Spring Editor aracılığyla çoklu form nesnelerini (combobox, chekbox..) set eder. onSubmit() : Form submit olunca dönen formun içindeki objenin yakalandığı methoddur.
  18. 18. Spring Form
  19. 19. Spring Form İçerisinde model objelerini bulunduran klasik POJO nesnesidir. Formun içindeki model objesinin new ile yaratılması gerekir. Jsp sayfalarına bind edilmesi için Spring <form:form> tagı ile kullanılmaktadır. <form: tagı bütün HTML formlarını tamamlamaktadır, Örnekler : <form:input <form:option … Konfigürasyonda Controller’a commandName ve commandClass ile bağlanırlar: <property name=quot;commandNamequot; value=quot;personelFormquot;/> <property name=quot;commandClassquot; value=quot;com.marti.form.PersonelFormquot;/>
  20. 20. Spring Form Validator org.springframework.validation.Validator ‘den implemente olurlar içlerinde iki önemli methodları bulunur: public boolean supports(Class clazz) { return PersonelForm.class.isAssignableFrom(clazz); } public void validate(Object obj, Errors errors) { PersonelForm personelForm = (PersonelForm)obj; if(personelForm.getPersonel().getIsim().equals(quot;quot;)) errors.rejectValue(quot;personel.isimquot;,quot;hata.gerekli.isimquot;); if(personelForm.getPersonel().getSoyIsim().equals(quot;quot;)) errors.rejectValue(quot;personel.isimquot;, quot;hata.gerekli.soyIsimquot;); }
  21. 21. Spring Form Validator Spring konfigürasyonunda FormController’ın tanımlandığı bean içerisinde bağlanırlar. <bean name=quot;/personel.mxxquot; class=quot;com.marti.controller.PersonelFormControllerquot;> <property name=quot;commandNamequot; value=quot;personelFormquot;/> <property name=quot;commandClassquot; value=quot;com.marti.form.PersonelFormquot;/> <property name=quot;validatorquot;> <bean class=quot;com.marti.validator.PersonelFormValidatorquot;/> </property> </bean>
  22. 22. SORU – CEVAP BÖLÜMÜ
  23. 23. Teşekkürler Muharrem TAÇ Martı Bilişim mtac@martisoft.com

×