ݺߣ

ݺߣShare a Scribd company logo
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

More Related Content

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

Editor's Notes

  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)