Spring、SpringMVC 完整开发步骤(❗)(todo

  • todo:声明式事务

1、开发步骤

1.1、Spring

  1. 导入依赖:Spring、AspectJ
  2. Spring 核心配置文件:applicationContext.xml
    • 注解扫描:dao、pojo、service
    • AOP 自动代理

1.2、Spring MVC

  1. 导入依赖:SpringMVC、Servlet
  2. 添加 web 框架支持、集成 Tomcat(注意项目结构 lib 目录)
  3. web.xml
    • DispatcherServlet
    • 字符编码过滤器
  4. 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>
      
  • 不常用

    <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>
    
posted @ 2021-09-02 09:39  Jaywee  阅读(90)  评论(0编辑  收藏  举报

👇