SlideShare una empresa de Scribd logo
1 de 21
Spring MVC: под
 другим углом
                             Июнь 2012
                       Евгений Скрипник
                       Алексей Резчиков




      SpringByExample.com.ua
      @ua_spring
О нас
•   Java разработчики
•   Последние 6 лет работаем со
    Spring на всех наших проектах
•   TDD, BDD, ATDD, CI, CD and
    stuff
•   Создатели
    SpringByExample.com.ua


                                                 2
•   А вообще мы прагматики

                        SpringByExample.com.ua
                                   @ua_spring
Что такое MVC?
Model–View–Controller (MVC) is a software design for
interactive computer user interfaces that separates the
representation of information from the user's
interaction with it.




                          SpringByExample.com.ua
                                     @ua_spring
                                                     3
Что такое MVC?




      SpringByExample.com.ua
                 @ua_spring
                               4
Преимущества
Разделение логики

Большое количество реализаций




                    SpringByExample.com.ua
                               @ua_spring
                                             5
Недостатки
Логика поделена между презентацией и
контроллером, как результат «тяжелые»
презентации

Отсутствие возможности динамически
обрабатывать события презентации




                 SpringByExample.com.ua
                            @ua_spring
                                          6
Развитие MVC: MVP
Model–view–presenter (MVP) is a derivative of the
model–view–controller (MVC) software pattern, also used
mostly for building user interfaces.

In MVP the presenter assumes the functionality of the
"middle-man" (played by the controller in MVC).
Additionally, the view is responsible for handling the UI
events (like mouseDown, keyDown, etc.), which used to be
the controller's job. Eventually, the model becomes
strictly a domain model.


                           SpringByExample.com.ua
                                      @ua_spring
                                                        7
MVP




SpringByExample.com.ua
           @ua_spring
                         8
Развитие Web
Отказ от plain HTML в пользу Web 2.0

  AJAX (Asynchronous JavaScript and XML)

  XML/JSON requests

  DOM manipulation and CSS




                     SpringByExample.com.ua
                                @ua_spring
                                              9
Развитие Web
Отказ от plain HTML в пользу Web 2.0




                     SpringByExample.com.ua
                                @ua_spring
                                              10
Развитие Web
Отказ от plain HTML в пользу Web 2.0




                     SpringByExample.com.ua
                                @ua_spring
                                              11
Мобильный Web
Оптимизация страниц под размер экрана




                 SpringByExample.com.ua
                            @ua_spring
                                          12
Мобильный Web
Уменьшение трафика и кол-ва запросов (3G)




                 SpringByExample.com.ua
                            @ua_spring
                                          13
Мобильный Web
Нативные приложения




                SpringByExample.com.ua
                           @ua_spring
                                         14
Вызовы для MVC: итог
Динамика отображения контента

Интерактивность (Flash / Video)

Мобильные платформы (Browsers vs Native
Apps)




                  SpringByExample.com.ua
                             @ua_spring
                                           15
Spring MVC 3.x
Компонетнтая модель – контроллер теперь
простой POJO

@Controller




                    SpringByExample.com.ua
                               @ua_spring
                                             16
Spring MVC 3.x
Использование handler-методов – CRUD +
другая бизнес логика одного доменного
объекта в одном месте

@RequestMapping




                    SpringByExample.com.ua
                               @ua_spring
                                             17
Spring MVC 3.x
@RequestParam

@PathVariable

@Valid

@ModelAttrubute

@InitBinder




                  SpringByExample.com.ua
                             @ua_spring
                                           18
Spring 3.x
И наконец:

  @ResponseBody – REST + JSON

  @ResponseStatus

  Content negotiation




                        SpringByExample.com.ua
                                   @ua_spring
                                                 19
Demo




 SpringByExample.com.ua
            @ua_spring
                          20
Вопросы
@ua_spring

oleksiy.rezchykov@gmail.com
eugene.scripnik@gmail.com

SpringByExample.com.ua

        SpringByExample.com.ua
                   @ua_spring
                                 21

Más contenido relacionado

Similar a Spring MVC: взгляд с другой стороны

Фреймворки: Недалёкое Прошлое и Ближайшее Будущее
Фреймворки: Недалёкое Прошлое и Ближайшее БудущееФреймворки: Недалёкое Прошлое и Ближайшее Будущее
Фреймворки: Недалёкое Прошлое и Ближайшее БудущееMoscowJS
 
C# Web. Занятие 09.
C# Web. Занятие 09.C# Web. Занятие 09.
C# Web. Занятие 09.Igor Shkulipa
 
Сложные социальные приложения с помощью JS MVC фреймворков
Сложные социальные приложения с помощью JS MVC фреймворковСложные социальные приложения с помощью JS MVC фреймворков
Сложные социальные приложения с помощью JS MVC фреймворковz-tech
 
Денис Измайлов, JavaScript сегодня: React, Redux и новая реальность
Денис Измайлов, JavaScript сегодня: React, Redux и новая реальностьДенис Измайлов, JavaScript сегодня: React, Redux и новая реальность
Денис Измайлов, JavaScript сегодня: React, Redux и новая реальностьScrumTrek
 
JavaScript сегодня: React, Redux и новая реальность
JavaScript сегодня: React, Redux и новая реальностьJavaScript сегодня: React, Redux и новая реальность
JavaScript сегодня: React, Redux и новая реальностьDenis Izmaylov
 
ASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVCASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVCGetDev.NET
 
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"LogeekNightUkraine
 
Приложения для соцсетей. Универсальные приложения на БЭМ
Приложения для соцсетей. Универсальные приложения на БЭМПриложения для соцсетей. Универсальные приложения на БЭМ
Приложения для соцсетей. Универсальные приложения на БЭМAleksandr Boichenko
 
Moxy. Из чего состоит и как этим пользоваться
Moxy. Из чего состоит и как этим пользоватьсяMoxy. Из чего состоит и как этим пользоваться
Moxy. Из чего состоит и как этим пользоватьсяYuri Shmakov
 
Фреймворки: недалёкое прошлое и ближайшее будущее
Фреймворки: недалёкое прошлое и ближайшее будущееФреймворки: недалёкое прошлое и ближайшее будущее
Фреймворки: недалёкое прошлое и ближайшее будущееYandex
 
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8Anatoly Kireev
 
C# Web. Занятие 05.
C# Web. Занятие 05.C# Web. Занятие 05.
C# Web. Занятие 05.Igor Shkulipa
 
Быстрая и безболезненная разработка клиентской части веб-приложений
Быстрая и безболезненная разработка клиентской части веб-приложенийБыстрая и безболезненная разработка клиентской части веб-приложений
Быстрая и безболезненная разработка клиентской части веб-приложенийYaroslav Tkachenko
 
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25MoscowJS
 
redux: the best for isomorphic apps
redux: the best for isomorphic appsredux: the best for isomorphic apps
redux: the best for isomorphic appsDenis Izmaylov
 
Что нового в ASP.NET 5
Что нового в ASP.NET 5Что нового в ASP.NET 5
Что нового в ASP.NET 5Microsoft
 
"Изоморфный D3 + MALEVICH", Алексей Охрименко, MoscowJS 25
"Изоморфный D3 + MALEVICH", Алексей Охрименко, MoscowJS 25"Изоморфный D3 + MALEVICH", Алексей Охрименко, MoscowJS 25
"Изоморфный D3 + MALEVICH", Алексей Охрименко, MoscowJS 25MoscowJS
 
Mvc, mvp and mvvm: A comparison of architectural patterns
Mvc, mvp and mvvm: A comparison of architectural patternsMvc, mvp and mvvm: A comparison of architectural patterns
Mvc, mvp and mvvm: A comparison of architectural patternsIvan Dyachenko
 

Similar a Spring MVC: взгляд с другой стороны (20)

Web application framework
Web application frameworkWeb application framework
Web application framework
 
Фреймворки: Недалёкое Прошлое и Ближайшее Будущее
Фреймворки: Недалёкое Прошлое и Ближайшее БудущееФреймворки: Недалёкое Прошлое и Ближайшее Будущее
Фреймворки: Недалёкое Прошлое и Ближайшее Будущее
 
C# Web. Занятие 09.
C# Web. Занятие 09.C# Web. Занятие 09.
C# Web. Занятие 09.
 
Сложные социальные приложения с помощью JS MVC фреймворков
Сложные социальные приложения с помощью JS MVC фреймворковСложные социальные приложения с помощью JS MVC фреймворков
Сложные социальные приложения с помощью JS MVC фреймворков
 
Денис Измайлов, JavaScript сегодня: React, Redux и новая реальность
Денис Измайлов, JavaScript сегодня: React, Redux и новая реальностьДенис Измайлов, JavaScript сегодня: React, Redux и новая реальность
Денис Измайлов, JavaScript сегодня: React, Redux и новая реальность
 
JavaScript сегодня: React, Redux и новая реальность
JavaScript сегодня: React, Redux и новая реальностьJavaScript сегодня: React, Redux и новая реальность
JavaScript сегодня: React, Redux и новая реальность
 
ASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVCASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVC
 
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"
 
Приложения для соцсетей. Универсальные приложения на БЭМ
Приложения для соцсетей. Универсальные приложения на БЭМПриложения для соцсетей. Универсальные приложения на БЭМ
Приложения для соцсетей. Универсальные приложения на БЭМ
 
Moxy. Из чего состоит и как этим пользоваться
Moxy. Из чего состоит и как этим пользоватьсяMoxy. Из чего состоит и как этим пользоваться
Moxy. Из чего состоит и как этим пользоваться
 
Фреймворки: недалёкое прошлое и ближайшее будущее
Фреймворки: недалёкое прошлое и ближайшее будущееФреймворки: недалёкое прошлое и ближайшее будущее
Фреймворки: недалёкое прошлое и ближайшее будущее
 
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
 
C# Web. Занятие 05.
C# Web. Занятие 05.C# Web. Занятие 05.
C# Web. Занятие 05.
 
Быстрая и безболезненная разработка клиентской части веб-приложений
Быстрая и безболезненная разработка клиентской части веб-приложенийБыстрая и безболезненная разработка клиентской части веб-приложений
Быстрая и безболезненная разработка клиентской части веб-приложений
 
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
 
redux: the best for isomorphic apps
redux: the best for isomorphic appsredux: the best for isomorphic apps
redux: the best for isomorphic apps
 
Что нового в ASP.NET 5
Что нового в ASP.NET 5Что нового в ASP.NET 5
Что нового в ASP.NET 5
 
"Изоморфный D3 + MALEVICH", Алексей Охрименко, MoscowJS 25
"Изоморфный D3 + MALEVICH", Алексей Охрименко, MoscowJS 25"Изоморфный D3 + MALEVICH", Алексей Охрименко, MoscowJS 25
"Изоморфный D3 + MALEVICH", Алексей Охрименко, MoscowJS 25
 
ASP.NET MVC: new era?
ASP.NET MVC: new era?ASP.NET MVC: new era?
ASP.NET MVC: new era?
 
Mvc, mvp and mvvm: A comparison of architectural patterns
Mvc, mvp and mvvm: A comparison of architectural patternsMvc, mvp and mvvm: A comparison of architectural patterns
Mvc, mvp and mvvm: A comparison of architectural patterns
 

Spring MVC: взгляд с другой стороны

Notas del editor

  1. Регламент 40 минут +/- 10 минут + 10-15 минут на вопросы
  2. СхемаПроверено временемОбласть примененияНедостаткиРазвитие MVC / MVP
  3. Тут нужно как-то красиво написать о необходимости в оптимизации страниц под небольшие размеры экранов, трафик должен быть небольшой, кол-во запросов должно быть значительно меньше, ну и в конечном итоге упоминаем нативные приложения, которые являются полноценной альтернативой браузерам
  4. Тут нужно как-то красиво написать о необходимости в оптимизации страниц под небольшие размеры экранов, трафик должен быть небольшой, кол-во запросов должно быть значительно меньше, ну и в конечном итоге упоминаем нативные приложения, которые являются полноценной альтернативой браузерам
  5. Тут нужно как-то красиво написать о необходимости в оптимизации страниц под небольшие размеры экранов, трафик должен быть небольшой, кол-во запросов должно быть значительно меньше, ну и в конечном итоге упоминаем нативные приложения, которые являются полноценной альтернативой браузерам
  6. http://rstoyanchev.github.com/spring-mvc-31-update/1. Компонентнаямодель, handler-methods (annotated controllers)1a. Model attributes, binders, @Valid, @PathAttribute2. REST & JSON (@ResponseBody, ???)3. Content negotiation?4. Sample app (CRUD for simple bean? workshop?, REST/JSON + HTML5)
  7. http://rstoyanchev.github.com/spring-mvc-31-update/1. Компонентнаямодель, handler-methods (annotated controllers)1a. Model attributes, binders, @Valid, @PathAttribute2. REST & JSON (@ResponseBody, ???)3. Content negotiation?4. Sample app (CRUD for simple bean? workshop?, REST/JSON + HTML5)