Junior
157
Ի՞նչ է անհրաժեշտ, որպեսզի Spring MVC աշխատի:
Պատասխան AI-ից
sobes.tech AI
Սկսելու համար Spring MVC, անհրաժեշտ է.
- Վեբ սերվեր: Servlet կոնտեյներ, ինչպիսիք են Apache Tomcat, Jetty կամ Undertow, վեբ հավելվածը տեղադրելու համար:
- Spring կոնֆիգուրացիա:
- XML կոնֆիգուրացիա կամ Java կոնֆիգուրացիա (annotations օգտագործելով), որը սահմանում է Spring բաղադրիչները (կոնտրոլերներ, ծառայություններ, պահոցներ և այլն) և նրանց փոխկապակցվածությունը:
DispatcherServletկոնֆիգուրացիանweb.xmlֆայլում կամ Java կոնֆիգուրացիայով (AbstractAnnotationConfigDispatcherServletInitializer):DispatcherServlet-ը Spring MVC- ի ֆրոնտ-կոնտրոլեր է, որը փոխանցում է հարցումները համապատասխան մշակողներին:
- Maven/Gradle կախվածություններ: Պետք է ներառել անհրաժեշտ կախվածությունները կառուցման ֆայլում (
pom.xmlկամbuild.gradle):spring-webmvc: Spring MVC- ի հիմնական կախվածությունը:- Շաբլոնների (Thymeleaf, JSP, FreeMarker և այլն) համար կախվածություններ:
- Վալիդացման (օրինակ Hibernate Validator) կախվածություններ:
- JSON/XML մշակման կախվածություններ (օրինակ Jackson կամ JAXB):
- Կոնտրոլերներ:
@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-ը սկսվում է գործարկման ժամանակ և սկսում է մշակել մուտքային հարցումները, ուղղորդելով դրանք համապատասխան կոնտրոլերներին մապինգների հիման վրա։