Spring、SpringMVC 完整开发步骤(❗)(todo
- todo:声明式事务
1、开发步骤
1.1、Spring
- 导入依赖:Spring、AspectJ
- Spring 核心配置文件:applicationContext.xml
- 注解扫描:dao、pojo、service
- AOP 自动代理
1.2、Spring MVC
- 导入依赖:SpringMVC、Servlet
- 添加 web 框架支持、集成 Tomcat(注意项目结构 lib 目录)
- web.xml
- DispatcherServlet
- 字符编码过滤器
- SpringMVC 核心配置文件:spring-mvc.xml
- 注解扫描:controller
- 视图解析器:自定义视图前后缀
- 注解驱动:自动注入处理器映射器、处理器适配器(底层集成 Jackson)
- 默认 Servlet 处理器:静态资源过滤
- 类型转换器
- 拦截器
- 异常处理器
2、相关配置文件
2.1、项目依赖
spring-webmvc 中包含 spring 相关依赖。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.9</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.7</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
2.2、Spring 核心配置文件
applicationContext.xml
-
注解扫描:dao、pojo、service(IoC)
-
AOP 自动代理
<context:component-scan base-package="indi.jaywee.dao"/> <context:component-scan base-package="indi.jaywee.pojo"/> <context:component-scan base-package="indi.jaywee.service"/> <aop:aspectj-autoproxy/>
2.3、Spring MVC 配置
2.3.1、web.xml
-
DispatcherServlet(入门 3.3.2)
-
字符编码过滤器(请求响应 2.2.5)
<servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
2.3.2、核心配置文件
spring-mvc.xml
-
常用
-
注解扫描:controller
-
注解驱动
- 自动注入处理器映射器、处理器适配器(底层集成 Jackson)(请求响应 1.2.2)
- 引用类型转换器(如果有)
-
默认 Servlet 处理器:静态资源过滤(请求响应 2.2.1)
-
<context:component-scan base-package="indi.jaywee.controller"/> <!-- 引用类型转换器 --> <mvc:annotation-driven conversion-service="myConversionService"/> <mvc:default-servlet-handler/> <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/user/**"/> <bean class="indi.jaywee.interceptor.UserInterceptor"/> </mvc:interceptor> </mvc:interceptors>
-
-
不常用
-
视图解析器:自定义视图前后缀(前后端分离式开发中,后端不需要控制视图)(入门 4.3.2)
-
类型转换器:在注解驱动中引入(请求响应 2.5.3)
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/jsp/"/> <property name="suffix" value=".jsp"/> </bean> <bean id="myConversionService" class="org.springframework.context.support.ConversionServiceFactoryBean"> <property name="converters"> <set> <bean class="indi.jaywee.utils.DateConverter"/> </set> </property> </bean> <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="defaultErrorView" value="/error/default"/> <property name="exceptionMappings"> <map> <entry key="java.lang.ArithmeticException" value="/error/1"/> </map> </property> </bean>
-