springmvc四大组件
时间: 2025-02-13 10:21:47 浏览: 17
Spring MVC 四大核心组件详解
1. DispatcherServlet 前端控制器
DispatcherServlet
是整个 Spring MVC 的前端控制器,负责接收所有的 HTTP 请求并分发给相应的处理器。它会根据请求的信息查找合适的处理器适配器和视图解析器,并最终返回响应结果给客户端[^1]。
public class MyWebAppInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext container) throws ServletException {
AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
context.register(AppConfig.class);
container.addServlet("dispatcher", new DispatcherServlet(context)).addMapping("/");
}
}
2. HandlerMapping 处理器映射器
HandlerMapping
负责找到处理特定 URL 请求的目标对象(即 Controller)。通过 @RequestMapping
注解或其他方式指定的 URL 模式匹配规则来决定哪个控制器应该处理该请求。这使得开发者能够轻松地管理不同类型的请求路由逻辑[^4]。
@Controller
@RequestMapping("/users")
public class UserController {
@GetMapping("/{id}")
public String getUser(@PathVariable Long id, Model model) {
// ...
return "userView";
}
}
3. HandlerAdapter 处理器适配器
一旦 HandlerMapping
找到了具体的处理器实例之后,则由 HandlerAdapter
来调用这个处理器的方法执行实际业务操作。不同的处理器可能有不同的接口形式或参数列表,因此需要有一个统一的方式去调用它们——这就是 HandlerAdapter
的作用所在。
// 这里展示的是如何创建一个简单的处理器适配器,
// 实际应用中通常不需要手动编写此类代码。
class SimpleHandlerAdapter implements HandlerAdapter {
@Override
public boolean supports(Object handler) { /* ... */ }
@Override
public ModelAndView handle(HttpServletRequest request,
HttpServletResponse response,
Object handler) throws Exception { /* ... */ }
@Override
public long getLastModified(HttpServletRequest request, Object handler) { /* ... */ }
}
4. ViewResolver 视图解析器
当处理器完成数据处理后,可能会返回一个逻辑视图名称而不是完整的 HTML 页面内容。此时就需要 ViewResolver
将这些逻辑名转换成真实的物理视图资源(如 JSP 文件),以便渲染出最终要发送回浏览器的内容。
<!-- 配置 Thymeleaf 视图解析器 -->
<bean id="viewResolver"
class="org.thymeleaf.spring5.view.ThymeleafViewResolver">
<property name="templateEngine" ref="templateEngine"/>
</bean>
相关推荐


















