Sobes.tech
Junior
156

Mida on vaja, et Spring MVC töötaks?

Vastus AI-lt

sobes.tech AI

Lai käivitada Spring MVC, on vaja:

  1. Veebiserver: Servlet konteiner, näiteks Apache Tomcat, Jetty või Undertow, et juurutada veebirakendus.
  2. Spring konfiguratsioon:
    • XML-konfiguratsioon või Java-konfiguratsioon (annotatsioonide kasutamine), mis määratleb Spring komponendid (kontrollerid, teenused, hoidlad jne) ja nende suhted.
    • DispatcherServlet konfiguratsioon web.xml failis või Java konfiguratsiooniga (AbstractAnnotationConfigDispatcherServletInitializer). DispatcherServlet on Spring MVC frontkontroller, mis suunab päringud vastavatele töötlejatele.
  3. Maven/Gradle sõltuvused: Vajalikud sõltuvused lisada ehitustööriista faili (pom.xml või build.gradle):
    • spring-webmvc: Peamine sõltuvus Spring MVC jaoks.
    • Sõltuvused vaadete (Thymeleaf, JSP, FreeMarker jne) kasutamiseks.
    • Validatsiooni sõltuvused (näiteks Hibernate Validator).
    • JSON/XML töötlemise sõltuvused (näiteks Jackson või JAXB).
  4. Kontrollerid: Klassid annotatsioonidega @Controller või @RestController, mis sisaldavad meetodeid annotatsioonidega @RequestMapping, @GetMapping, @PostMapping jne, et töödelda sisenevaid HTTP-päringuid.

Minimaalne Java-konfiguratsiooni näide:

// WebMvcConfig.java
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.example.controller")
public class WebMvcConfig implements WebMvcConfigurer {
    // Täiendav konfiguratsioon, kui vaja (näiteks ViewResolver seadistused)
}

DispatcherServleti Java-konfiguratsiooniga seadistamise näide:

// AppInitializer.java
public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

    @Override
    protected Class<?>[] getRootConfigClasses() {
        return null; // Põhikonfiguratsioone ei ole
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class<?>[]{WebMvcConfig.class}; // Spring MVC konfiguratsioon
    }

    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"}; // Mappimine `DispatcherServlet`-ile põh URL-ile
    }
}

Lihtne kontrolleri näide:

// 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"; // Vaate nimi (näiteks hello.jsp või hello.html)
    }
}

Kokkuvõttes käivitub Spring MVC veebirakenduse (JAR või WAR) paigaldamisega, mis sisaldab kõiki vajalikke komponente ja konfiguratsioone, ning töötab veebiserveril. DispatcherServlet initsialiseerub käivitamisel ja hakkab töötlema sisenevaid veebipäringuid, suunates need vastavatele kontrollijatele mappimise alusel.