- Spring MVC 的核心概念
Spring MVC 是基于 MVC 设计模式的框架,其核心组件包括:
-
Controller(控制器):接收用户请求,处理业务逻辑,并返回视图名称或数据。
-
Model(模型):封装数据,通常是一个 JavaBean,用于在控制器和视图之间传递数据。
-
View(视图):负责展示数据,通常是 JSP、Thymeleaf 或其他模板引擎生成的页面。
2. Spring MVC 的工作流程
-
用户发送请求到前端控制器(DispatcherServlet)。
-
DispatcherServlet 根据请求信息调用 HandlerMapping 来查找 Handler(Controller)。
-
HandlerMapping 返回 Handler 的执行链(包括拦截器)。
-
DispatcherServlet 调用 HandlerAdapter 来执行 Handler。
-
HandlerAdapter 调用 Handler,并返回一个 ModelAndView 对象。
-
DispatcherServlet 根据 ModelAndView 中的视图信息,调用 ViewResolver 解析视图。
-
ViewResolver 返回具体的 View。
-
DispatcherServlet 将数据填充到 View 中,并渲染视图。
-
最终将响应返回给用户。
3. Spring MVC 的核心组件
-
DispatcherServlet:前端控制器,是整个 Spring MVC 的核心。它负责接收请求、分发请求到对应的处理器,并返回响应。
-
HandlerMapping:处理器映射器,用于根据请求信息(如 URL、HTTP 方法等)找到对应的处理器(Controller)。
-
HandlerAdapter:处理器适配器,用于执行处理器(Controller)的方法,并返回一个 ModelAndView 对象。
-
ViewResolver:视图解析器,用于将逻辑视图名称解析为具体的视图实现(如 JSP 页面)。
-
Controller:控制器,用于处理用户请求,执行业务逻辑,并返回视图或数据。
4. Spring MVC 的配置
Spring MVC 的配置可以通过 XML 配置文件或注解来完成。以下是常见的配置方式:
基于注解的配置
-
@Controller:标记一个类为控制器。
-
@RequestMapping:用于映射请求到控制器方法。
-
@RequestParam:用于绑定请求参数到方法参数。
-
@PathVariable:用于绑定 URL 中的占位符到方法参数。
-
@ModelAttribute:用于将方法参数绑定到模型中。
-
@ResponseBody:用于将方法返回值直接写入 HTTP 响应体。
-
@RestController:用于定义 RESTful 风格的控制器,相当于 @Controller + @ResponseBody。
基于 XML 的配置
在 web.xml
中配置 DispatcherServlet:
xml复制
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
在 dispatcher-servlet.xml
中配置组件扫描和视图解析器:
xml复制
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="...">
<context:component-scan base-package="com.example.controller" />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
5. Spring MVC 的优点
-
松耦合:通过注解和配置文件,实现了控制器、模型和视图之间的低耦合。
-
易于测试:控制器方法可以独立于 Servlet API 进行测试。
-
高度灵活:支持多种视图技术(如 JSP、Thymeleaf、Freemarker)。
-
与 Spring 框架无缝集成:可以方便地与其他 Spring 模块(如 Spring Data、Spring Security)集成。
-
支持 RESTful 风格的开发:通过注解和配置,可以轻松开发 RESTful 风格的 Web 应用。
6. Spring MVC 的应用场景
Spring MVC 适用于各种基于 Java 的 Web 应用开发,尤其是企业级应用。它支持传统的 Web 应用开发和 RESTful 风格的 API 开发。
使用Spring JDBC模板(JdbcTemplate)集成数据库
Spring JDBC模板是Spring提供的一个简化数据库操作的工具,它封装了JDBC的复杂操作,使得开发者可以更方便地执行SQL语句。步骤1:配置数据源(DataSource),步骤2:配置JdbcTemplate,步骤3:在Service层或DAO层使用JdbcTemplate
总结
Spring MVC 是一个功能强大且灵活的 Web 开发框架,通过 MVC 设计模式实现了代码的清晰分层和低耦合。它与 Spring 框架的其他模块紧密集成,提供了丰富的功能和高度的可扩展性。