1 / 23

SPRING MVC bemutat ása

SPRING MVC bemutat ása. Szmetankó Gábor Greencode Kft. gabor.szmetanko @greencode.hu. Egy kis ismétlés - Dependency Injection. Engine. Car. Wheel. Window. Window window1 = n ew Window() ; Window window2 = n ew Window() ; Wheel wheel1 = new Wheel(); Wheel wheel2 = new Wheel();

brad
Download Presentation

SPRING MVC bemutat ása

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SPRING MVC bemutatása Szmetankó Gábor Greencode Kft. gabor.szmetanko@greencode.hu

  2. Egy kis ismétlés - Dependency Injection Engine Car Wheel Window Window window1 = new Window(); Window window2 = new Window(); Wheel wheel1 = new Wheel(); Wheel wheel2 = new Wheel(); Wheel wheel3 = new Wheel(); Wheel wheel4 = new Wheel(); Engine engine= new Engine(); Car car= new Car(window1, window2, wheel1, wheel2, wheel3, wheel4, engine);

  3. Egy kis ismétlés - Dependency Injection DI Framework Engine Car Wheel Window MyService service = new MyService(Car car);

  4. Egy kis ismétlés – Spring Framework A Spring Framework egy Java platform Java alapú alkalmazások fejlesztésére A Spring Framework adja az infrastruktúrát, így a fejlesztőknek csak a tényleges üzleti logikára kell koncentrálniuk

  5. Egy kis ismétlés – Spring Framework

  6. Egykis ismétlés – legfontosabb Spring annotációk http://refcardz.dzone.com/refcardz/spring-annotations • Singleton komponensek létrehozása: • @Component • @Component(“myComponent”) • @Service • @Repository • Dependency Injection: • @Autowired • @Qualifier(“myComponent”) • @Required

  7. Spring MVC A Spring Framework model-view-controller modulja Web alkalmazások fejlesztésére Könnyen konfigurálható (convention over configuration) Robosztus Rugalmas Könnyű tesztelhetőség JSP tag library Egyszerű validáció, lokalizáció, i18n

  8. Hagyományos Servlet alapú alkalmazás public class HelloWorldServletextends HttpServlet { private String message; public void init() throws ServletException { message = "Hello World"; } public void doGet(HttpServletRequest request, HttpServletResponseresponse) throws Exception { response.setContentType("text/html"); PrintWriterout = response.getWriter(); out.println("<h1>" + message + "</h1>"); } public void destroy() { } }

  9. Model-View-Controller

  10. Front Controller Controller 1 View 1 Model Front Controller Request Request Controller 2 View 2 Controller 3 View 3

  11. Spring MVC architektúra

  12. Spring MVC architektúra

  13. DispatcherServlet A Front Controller szerepét tölti be Bármely kérés a klienstől először a DispatcherServlethez érkezik Tartozik hozzá egy Spring Context Framework specifikus feladatokat lát el Hagyományos Servletként kell regisztrálni (web.xml)

  14. HandlerMapping • Feladata a kliens URL-ből meghatározni a kontrollert • Interfész: tetszőleges implementáció konfigurálható • Számos implementációt nyújt a Spring: • SimpleUrlHandlerMapping: hagyományos Map • ControllerClassNameHandlerMapping • BeanNameHandlerMapping • és még sok más...

  15. Controller • Üzleti logika egy részét implementálják • DispatcherServlet hívja meg • Feladata a model módosítása és a megfelelő view kiválasztása • Hagyományos Java osztályok@Controllerannotációval • Egy-egy metódus a különféle kérések lekezelésére

  16. Controller példa @Controller public class HelloWorldController { @RequestMapping("/helloWorld") public String helloWorld(Model model) { model.addAttribute("message", "Hello World!"); return "helloWorld"; } } • @RequestMapping • Megadja, hogy milyen URL-re érkező kéréseket szolgál ki a metódus • Megadható a HTTP metódus is (pl. GET, POST) • Az osztályon is elhelyezhető (globális hatás)

  17. Handler metódus leggyakoribb paraméterei @RequestMapping(value="/owners/{ownerId}") public String findOwner(@PathVariable String ownerId, Model model) {} • HttpServletRequest,HttpServletResponse, HttpSession • @RequestParam • @RequestHeader • @RequestBody • Model, ModelMap • @ModelAttribute • BindingResult • @CookieValue • @Valid • @PathVariable

  18. Handler metódus leggyakoribb visszatérési értékei • Model • ModelAndView • Map • String • void • @ResponseBody

  19. ModelAndView return new ModelAndView(”myView”, ”myModelKey”, ”myModelValue”); • Controllerekvisszatérési értéke • Egyszerű konténer osztály, amely a model és a view adatait tartalmazza • Model: a controller tölti fel adatokkal • View • Logikai név • Implicit vagy a controller adja meg

  20. ViewResolver • A logikai view névhez rendel tényleges view-t • Ugyancsak egy interfész • Tetszőleges implementáció konfigurálható • Számos gyári implementáció közül választhatunk: • InternalResourceViewResolver • BeanNameViewResolver • VelocityViewResolver • XmlViewResolver

  21. View • A tényleges vizuális megjelenítésért felelős • Számos technológiát támogat: • JSP & JSTL (Spring tag library) • Tiles • Velocity • FreeMarker • PDF, Excel, JSON, RSS, XML

  22. Egyéb hasznos dolgok http://docs.spring.io/spring/docs/current/spring-framework-reference/html/index.html Lokalizáció Többnyelvűség Témák AJAX, REST Fájl feltöltés Exception kezelés Caching

  23. Köszönöm a figyelmet! Forráskód: github.com/szmeti/spring-mvc-demo

More Related