Junior
158
Kas ir nepieciešams, lai darbotos Spring MVC?
Atbilde no AI
sobes.tech AI
Lai palaistu Spring MVC, nepieciešams:
- Tīmekļa serveris: Servlet konteineris, piemēram, Apache Tomcat, Jetty vai Undertow, lai izvietotu tīmekļa lietojumprogrammu.
- Spring konfigurācija:
- XML konfigurācija vai Java konfigurācija (ar anotācijām), kas definē Spring komponentus (kontrolierus, pakalpojumus, repozitorijus utt.) un to savstarpējās saites.
- Konfigurēt
DispatcherServletweb.xmlfailā vai ar Java konfigurāciju (AbstractAnnotationConfigDispatcherServletInitializer).DispatcherServletir Spring MVC frontkontrolieris, kas novirza pieprasījumus uz atbilstošiem apstrādātājiem.
- Maven/Gradle atkarības: Iekļaut nepieciešamās atkarības būvniecības failā (
pom.xmlvaibuild.gradle):spring-webmvc: Galvenā atkarība Spring MVC.- Atkarības skatu (Thymeleaf, JSP, FreeMarker utt.) izmantošanai.
- Validācijas atkarības (piemēram, Hibernate Validator).
- JSON/XML apstrādes atkarības (piemēram, Jackson vai JAXB).
- Kontrolieri: Klases ar
@Controllervai@RestControlleranotācijām, kas satur metodes ar@RequestMapping,@GetMapping,@PostMappingun citiem, lai apstrādātu ienākošos HTTP pieprasījumus.
Minimālais Java konfigurācijas piemērs:
// WebMvcConfig.java
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.example.controller")
public class WebMvcConfig implements WebMvcConfigurer {
// Papildu konfigurācija, ja nepieciešama (piemēram, ViewResolver iestatījumi)
}
DispatcherServlet konfigurācija ar Java:
// AppInitializer.java
public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return null; // Nav galvenie konteksti
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class<?>[]{WebMvcConfig.class}; // Spring MVC konfigurācija
}
@Override
protected String[] getServletMappings() {
return new String[]{"/"}; // Mape `DispatcherServlet` uz galveno URL
}
}
Vienkāršs kontrolieris:
// 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"; // Skata nosaukums (piem., hello.jsp vai hello.html)
}
}
Kopumā, Spring MVC tiek palaists, izvietojot tīmekļa lietojumprogrammu (JAR vai WAR), kas satur visas nepieciešamās sastāvdaļas un konfigurāciju, uz tīmekļa servera. DispatcherServlet tiek inicializēts palaišanas laikā un sāk apstrādāt ienākošos pieprasījumus, novirzot tos uz atbilstošiem kontrolieriem pēc mapešanas.