Junior
Mi szükséges ahhoz, hogy a Spring MVC működjön?
sobes.tech MI
Válasz az MI-től
A Spring MVC indításához szükségesek:
- Web szerver: Servlet konténer, mint például Apache Tomcat, Jetty vagy Undertow, a webalkalmazás telepítéséhez.
- Spring konfiguráció:
- XML-konfiguráció vagy Java-konfiguráció (annotációk használatával), amely meghatározza a Spring komponenseit (kontrollerek, szolgáltatások, repositoryk stb.) és azok kapcsolatait.
- A
DispatcherServletkonfigurálása aweb.xmlfájlban vagy Java-konfigurációval (AbstractAnnotationConfigDispatcherServletInitializer). ADispatcherServleta Spring MVC front-end kontrollere, amely a kérések kezelését delegálja a megfelelő kezelőkre.
- Maven/Gradle függőségek: A szükséges függőségek beillesztése a build fájlba (
pom.xmlvagybuild.gradle):spring-webmvc: A Spring MVC alap függősége.- A megjelenítők (Thymeleaf, JSP, FreeMarker stb.) függőségei.
- Validációs függőségek (pl. Hibernate Validator).
- JSON/XML feldolgozó függőségek (pl. Jackson vagy JAXB).
- Kontrollerek:
@Controllervagy@RestControllerannotációval ellátott osztályok, amelyek@RequestMapping,@GetMapping,@PostMappingstb. annotációval ellátott módszereket tartalmaznak, a bejövő HTTP kérések kezelésére.
Minimális Java-konfiguráció példa:
// WebMvcConfig.java
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.example.controller")
public class WebMvcConfig implements WebMvcConfigurer {
// További konfiguráció, ha szükséges (pl. ViewResolver beállítása)
}
A DispatcherServlet konfigurálása Java-konfigurációval:
// AppInitializer.java
public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return null; // Nincs gyökér kontextus
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class<?>[]{WebMvcConfig.class}; // Spring MVC konfiguráció
}
@Override
protected String[] getServletMappings() {
return new String[]{"/"}; // DisptacherServlet mapping a gyökér URL-re
}
}
Egyszerű kontrollerek példája:
// 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ézet neve (pl. hello.jsp vagy hello.html)
}
}
Végül, a Spring MVC az alkalmazás (JAR vagy WAR) telepítésével indul, amely tartalmazza az összes szükséges komponenst és konfigurációt egy web szerveren. A DispatcherServlet inicializálódik a futás során, és elkezdi kezelni a bejövő web kéréseket, azokat a megfelelő kontrollerekhez irányítva a mappelek alapján.