Sobes.tech
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:

  1. Web szerver: Servlet konténer, mint például Apache Tomcat, Jetty vagy Undertow, a webalkalmazás telepítéséhez.
  2. 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 DispatcherServlet konfigurálása a web.xml fájlban vagy Java-konfigurációval (AbstractAnnotationConfigDispatcherServletInitializer). A DispatcherServlet a Spring MVC front-end kontrollere, amely a kérések kezelését delegálja a megfelelő kezelőkre.
  3. Maven/Gradle függőségek: A szükséges függőségek beillesztése a build fájlba (pom.xml vagy build.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).
  4. Kontrollerek: @Controller vagy @RestController annotációval ellátott osztályok, amelyek @RequestMapping, @GetMapping, @PostMapping stb. 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.