Sobes.tech
Junior
157

Ի՞նչ է անհրաժեշտ, որպեսզի Spring MVC աշխատի:

Պատասխան AI-ից

sobes.tech AI

Սկսելու համար Spring MVC, անհրաժեշտ է.

  1. Վեբ սերվեր: Servlet կոնտեյներ, ինչպիսիք են Apache Tomcat, Jetty կամ Undertow, վեբ հավելվածը տեղադրելու համար:
  2. Spring կոնֆիգուրացիա:
    • XML կոնֆիգուրացիա կամ Java կոնֆիգուրացիա (annotations օգտագործելով), որը սահմանում է Spring բաղադրիչները (կոնտրոլերներ, ծառայություններ, պահոցներ և այլն) և նրանց փոխկապակցվածությունը:
    • DispatcherServlet կոնֆիգուրացիան web.xml ֆայլում կամ Java կոնֆիգուրացիայով (AbstractAnnotationConfigDispatcherServletInitializer): DispatcherServlet-ը Spring MVC- ի ֆրոնտ-կոնտրոլեր է, որը փոխանցում է հարցումները համապատասխան մշակողներին:
  3. Maven/Gradle կախվածություններ: Պետք է ներառել անհրաժեշտ կախվածությունները կառուցման ֆայլում (pom.xml կամ build.gradle):
    • spring-webmvc: Spring MVC- ի հիմնական կախվածությունը:
    • Շաբլոնների (Thymeleaf, JSP, FreeMarker և այլն) համար կախվածություններ:
    • Վալիդացման (օրինակ Hibernate Validator) կախվածություններ:
    • JSON/XML մշակման կախվածություններ (օրինակ Jackson կամ JAXB):
  4. Կոնտրոլերներ: @Controller կամ @RestController նշանած դասեր, որոնք պարունակում են @RequestMapping, @GetMapping, @PostMapping և այլ նշանած մեթոդներ, որոնք մշակում են մուտքային HTTP հարցումները:

Նվազագույն Java կոնֆիգուրացիայի օրինակ:

// WebMvcConfig.java
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.example.controller")
public class WebMvcConfig implements WebMvcConfigurer {
    // Լրացուցիչ կոնֆիգուրացիա, եթե անհրաժեշտ է (օրինակ, ViewResolver-ի կարգավորումներ)
}

DispatcherServlet-ի Java կոնֆիգուրացիայով կարգավորումը:

// AppInitializer.java
public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

    @Override
    protected Class<?>[] getRootConfigClasses() {
        return null; // Ոչ մի հիմնական կոնտեքստ
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class<?>[]{WebMvcConfig.class}; // Spring MVC կոնֆիգուրացիա
    }

    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"}; // Մապպինգ `DispatcherServlet`-ի հիմնական URL- ի վրա
    }
}

Պարզ կոնտրոլեր օրինակ:

// 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"; // Նամակների անունը (օրինակ, hello.jsp կամ hello.html)
    }
}

Վերջում, Spring MVC- ն սկսվում է վեբ հավելվածի տեղադրմամբ (JAR կամ WAR), որը պարունակում է բոլոր անհրաժեշտ կոմպոնենտները և կոնֆիգուրացիան, վեբ սերվերի վրա: DispatcherServlet-ը սկսվում է գործարկման ժամանակ և սկսում է մշակել մուտքային հարցումները, ուղղորդելով դրանք համապատասխան կոնտրոլերներին մապինգների հիման վրա։