• (二)SpringMVC+mybatis实践


    一、需求

    以案例作为驱动

    springmvc和mybatis使用一个案例(商品订单管理系统)

    功能需求:商品的列表查询

    二、环境准备

    数据库环境

    Java环境

    jdk1.8

    eclipse

    springmvc版本 spring3.2

    需要spring3.2所有jar包(一定包含spring-webmvc-3.2.0.RELEASE.jar)

     

    POM.xml

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    	<modelVersion>4.0.0</modelVersion>
    	<groupId>springmvc</groupId>
    	<artifactId>springmvc</artifactId>
    	<version>0.0.1-SNAPSHOT</version>
    	<packaging>war</packaging>
    	<properties>
    		<spring-version>5.1.8.RELEASE</spring-version>
    	</properties>
    	<build>
    		<sourceDirectory>src</sourceDirectory>
    		<plugins>
    			<plugin>
    				<artifactId>maven-compiler-plugin</artifactId>
    				<version>3.1</version>
    				<configuration>
    					<source>1.7</source>
    					<target>1.7</target>
    				</configuration>
    			</plugin>
    			<plugin>
    				<artifactId>maven-war-plugin</artifactId>
    				<version>2.3</version>
    				<configuration>
    					<warSourceDirectory>WebRoot</warSourceDirectory>
    					<failOnMissingWebXml>false</failOnMissingWebXml>
    				</configuration>
    			</plugin>
    			<plugin>
    				<artifactId>maven-war-plugin</artifactId>
    				<version>2.3</version>
    				<configuration>
    					<warSourceDirectory>WebRoot</warSourceDirectory>
    					<failOnMissingWebXml>false</failOnMissingWebXml>
    				</configuration>
    			</plugin>
    		</plugins>
    	</build>
    
    	<dependencies>
    		<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${spring-version}</version>
    </dependency>
    
    		<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
    		<dependency>
    			<groupId>org.springframework</groupId>
    			<artifactId>spring-core</artifactId>
    			<version>${spring-version}</version>
    		</dependency>
    
    		<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
    		<dependency>
    			<groupId>org.springframework</groupId>
    			<artifactId>spring-context</artifactId>
    			<version>${spring-version}</version>
    		</dependency>
    		<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
    		<dependency>
    			<groupId>org.springframework</groupId>
    			<artifactId>spring-core</artifactId>
    			<version>${spring-version}</version>
    		</dependency>
    		<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
    		<dependency>
    			<groupId>org.springframework</groupId>
    			<artifactId>spring-jdbc</artifactId>
    			<version>${spring-version}</version>
    		</dependency>
    		<!-- https://mvnrepository.com/artifact/org.springframework/spring-aop -->
    		<dependency>
    			<groupId>org.springframework</groupId>
    			<artifactId>spring-aop</artifactId>
    			<version>${spring-version}</version>
    		</dependency>
    		<!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
    		<dependency>
    			<groupId>org.springframework</groupId>
    			<artifactId>spring-web</artifactId>
    			<version>${spring-version}</version>
    		</dependency>
    		<!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
    		<dependency>
    			<groupId>org.springframework</groupId>
    			<artifactId>spring-test</artifactId>
    			<version>${spring-version}</version>
    			<scope>test</scope>
    		</dependency>
    
    
    		<!-- https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl-api -->
    		<dependency>
    			<groupId>javax.servlet.jsp.jstl</groupId>
    			<artifactId>jstl-api</artifactId>
    			<version>1.2</version>
    		</dependency>
    
    		<!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
    		<dependency>
    			<groupId>commons-logging</groupId>
    			<artifactId>commons-logging</artifactId>
    			<version>1.2</version>
    		</dependency>
    		<!-- https://mvnrepository.com/artifact/junit/junit -->
    		<dependency>
    			<groupId>junit</groupId>
    			<artifactId>junit</artifactId>
    			<version>4.2</version>
    			<scope>test</scope>
    		</dependency>
    
    
    	</dependencies>
    </project>
    

      三、配置前端控制器

    <!-- springmvc前端控制器-->
        <servlet>
            <servlet-name>springmvc</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    
            <!-- contextConfigLocation配置springmvcc加载的配置文件,处理器映射器、适配器等等
             如果不配置contextConfigLocation 默认加载、WEB-INF/servlet名称servlet.xml (spring-servlet.xml)-->
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:springmvc.xml</param-value>
            </init-param>
        </servlet>
    
      <!-- springmvc 映射器-->
        <servlet-mapping>
            <servlet-name>springmvc</servlet-name>
            <!--
        第一种 *.action,访问以。action结尾的由Dispatcherservlet进行解析;
        第二种:/,所有访问的地址都由Dispatcherservlet进行解析,对于静态文件的解析需要配置不让Dispatcherservlet进行解析,
        使用此种方式可以实现RESTful风格的url
        第三种:/*,这样配置不对,使用这种配置,最终要转发到一个jsp页面时,仍然会有Dispatcherservlet解析jsp地址,不能根据jsp页面找到handler,会报错。
         -->
            <url-pattern>*.action</url-pattern>>
        </servlet-mapping>>
    

      四、配置处理器映射器

    在classpath下的springmvc.xml中配置处理器映射器

     五、配置处理器适配器

    在classpath下的springmvc.xml中配置处理器适配器

    通过查看原码:

    此适配器能执行实现contraller接口的handler

     

    开发Handler

    需要实现controller接口,才能由org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter适配器执行

    六、配置视图解析器

  • 相关阅读:
    操作标签的属性和属性值 table表格
    dom基本获取 标签文本操作
    延时器 清除延时器
    倒计时
    电子时钟
    时间戳
    设定时间的方法
    内置对象Date
    对象的基本特点
    终于有人把云计算、大数据和 AI 讲明白了【深度好文】
  • 原文地址:https://www.cnblogs.com/wangcp-2014/p/11389373.html
Copyright © 2020-2023  润新知