You are on page 1of 23

SPRING MVC

bemutatsa
Szmetank Gbor
Greencode Kft.
gabor.szmetanko@greencode.hu

Egy kis ismtls - 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);

Egy kis ismtls - Dependency


Injection
DI Framework
Engine

Car

Wheel

Window

MyService service = new MyService(Car car);

Egy kis ismtls Spring


Framework

A Spring Framework egy Java platform


Java alap alkalmazsok fejlesztsre

A Spring Framework adja az


infrastruktrt, gy a fejlesztknek csak
a tnyleges zleti logikra kell
koncentrlniuk

Egy kis ismtls Spring


Framework

Egy kis ismtls legfontosabb Spring


annotcik

Singleton komponensek ltrehozsa:


@Component
@Component(myComponent)
@Service
@Repository
Dependency Injection:
@Autowired
@Qualifier(myComponent)
@Required
http://refcardz.dzone.com/refcardz/spring-annotations

Spring MVC

A Spring Framework model-view-controller modulja

Web alkalmazsok fejlesztsre

Knnyen konfigurlhat (convention over


configuration)

Robosztus

Rugalmas

Knny tesztelhetsg

JSP tag library

Egyszer validci, lokalizci, i18n

Hagyomnyos Servlet alap alkalmazs


public class HelloWorldServlet extends HttpServlet {
private String message;
public void init() throws ServletException {
message = "Hello World";
}
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws Exception {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<h1>" + message + "</h1>");
}
public void destroy() {
}
}

Model-ViewController
Model
az alkalmazs llapott trolja
rtesti a view-t az llapot
megvltozsrl

View
a model vizulis
megjelentsrt felels
felhasznli interakcik
tovbbtsa a
controllerhez

Controller
az alkalmazs logikrt
felels
a felhaszli interakcikat
model vltoztatsokra kpezi
le
kivlasztja a megfelel view-t

Front Controller
Controller
1

View 1
Model

Request

Front
Controller

Request

Controller
2

View 2

Controller
3

View 3

Kontroller
kivlasztsa
Autorizci
Autentikci
Logging

Egy konkrt zleti funkci

Megjelents

Spring MVC architektra

Spring MVC architektra

DispatcherServl
et

A Front Controller szerept tlti be


Brmely krs a klienstl elszr a
DispatcherServlethez rkezik

Tartozik hozz egy Spring Context


Framework specifikus feladatokat lt el
Hagyomnyos Servletknt kell
regisztrlni (web.xml)

HandlerMappin
g

Feladata a kliens URL-bl meghatrozni a


kontrollert

Interfsz: tetszleges implementci


konfigurlhat

Szmos implementcit nyjt a Spring:


SimpleUrlHandlerMapping: hagyomnyos

Map
ControllerClassNameHandlerMapping
BeanNameHandlerMapping
s mg sok ms...

Controller

zleti logika egy rszt implementljk


DispatcherServlet hvja meg
Feladata a model mdostsa s a

megfelel view kivlasztsa


Hagyomnyos Java osztlyok
@Controller annotcival
Egy-egy metdus a klnfle krsek
lekezelsre

Controller plda
@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 krseket szolgl ki a

metdus
Megadhat a HTTP metdus is (pl. GET, POST)
Az osztlyon is elhelyezhet (globlis hats)

Handler metdus leggyakoribb


paramterei

@PathVariable
@RequestMapping(value="/owners/{ownerId}")
public String findOwner(@PathVariable String ownerId, Model model) {}

HttpServletRequest, HttpServletResponse,
HttpSession
@RequestParam
@RequestHeader
@RequestBody
Model, ModelMap
@ModelAttribute
BindingResult
@CookieValue
@Valid

Handler metdus leggyakoribb visszatrsi


rtkei

Model
ModelAndView
Map
String
void
@ResponseBody

ModelAndView

Controllerek visszatrsi rtke


Egyszer kontner osztly, amely a
model s a view adatait tartalmazza

Model: a controller tlti fel adatokkal


View
Logikai nv
Implicit vagy a controller adja meg
return new ModelAndView(myView, myModelKey, myModelValue);

ViewResolver

A logikai view nvhez rendel tnyleges


view-t
Ugyancsak egy interfsz

Tetszleges implementci konfigurlhat


Szmos gyri implementci kzl
vlaszthatunk:
InternalResourceViewResolver
BeanNameViewResolver
VelocityViewResolver

XmlViewResolver

View

A tnyleges vizulis megjelentsrt

felels
Szmos technolgit tmogat:

JSP & JSTL (Spring tag library)


Tiles
Velocity
FreeMarker
PDF, Excel, JSON, RSS, XML

Egyb hasznos dolgok

Lokalizci

Tbbnyelvsg

Tmk

AJAX, REST

Fjl feltlts

Exception kezels

Caching

http://docs.spring.io/spring/docs/current/spring-frameworkreference/html/index.html

Ksznm a figyelmet!

Forrskd: github.com/szmeti/spring-mvc-demo

You might also like