Junior
Čo je potrebné na to, aby Spring MVC fungovalo?
sobes.tech AI
Odpoveď od AI
Na spustenie Spring MVC sú potrebné:
- Webový server: Servlet kontajner, ako je Apache Tomcat, Jetty alebo Undertow, na nasadenie webovej aplikácie.
- Konfigurácia Spring:
- XML konfigurácia alebo Java konfigurácia (s použitím anotácií), ktorá definuje komponenty Spring (kontroléry, služby, repository a pod.) a ich vzťahy.
- Konfigurácia
DispatcherServletv súboreweb.xmlalebo pomocou Java konfigurácie (AbstractAnnotationConfigDispatcherServletInitializer).DispatcherServletje front-ovládací kontrolér Spring MVC, ktorý deleguje spracovanie požiadaviek príslušným handlerom.
- Závislosti Maven/Gradle: Zahrnutie potrebných závislostí do súboru build (napríklad
pom.xmlalebobuild.gradle):spring-webmvc: Hlavná závislosť pre Spring MVC.- Závislosti pre zobrazenia (Thymeleaf, JSP, FreeMarker a pod.) pri použití šablónovačov.
- Závislosti pre validáciu (napríklad Hibernate Validator).
- Závislosti pre spracovanie JSON/XML (napríklad Jackson alebo JAXB).
- Kontroléry: Triedy s anotáciami
@Controlleralebo@RestController, obsahujúce metódy označené anotáciami@RequestMapping,@GetMapping,@PostMappinga pod., na spracovanie prichádzajúcich HTTP požiadaviek.
Príklad minimálnej Java konfigurácie:
// WebMvcConfig.java
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.example.controller")
public class WebMvcConfig implements WebMvcConfigurer {
// Ďalšia konfigurácia, ak je potrebná (napríklad nastavenie ViewResolver)
}
Príklad nastavenia DispatcherServlet pomocou Java konfigurácie:
// AppInitializer.java
public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return null; // Žiadne koreňové kontexty
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class<?>[]{WebMvcConfig.class}; // Konfigurácia Spring MVC
}
@Override
protected String[] getServletMappings() {
return new String[]{"/"}; // Mapovanie DisptacherServlet na koreňový URL
}
}
Príklad jednoduchého kontroléra:
// HelloController.java
@Controller
public class HelloController {
@GetMapping("/hello")
public String hello(@RequestParam(name = "name", required = false, defaultValue = "World") String name, Model model) {
model.addAttribute("name", name);
return "hello"; // Názov pohľadu (napríklad hello.jsp alebo hello.html)
}
}
Na záver, Spring MVC sa spúšťa nasadením webovej aplikácie (JAR alebo WAR), ktorá obsahuje všetky potrebné komponenty a konfiguráciu na webovom serveri. DispatcherServlet sa inicializuje pri štarte a začína spracovávať prichádzajúce webové požiadavky, smerujúc ich na príslušné kontroléry na základe mapovaní.