基于maven的spring mvc框架引入

还是基于上一篇文章来讲,上次我们把maven的环境搭建好了。这一次我们把Spring-mvc引入进来(Spring—一个叫春的框架)。

替换掉lib下的依赖

肌肉都用上了maven,那么我们不能继续那么老土了,新官上任三把火,首先把jar依赖替换成maven的。怎么换?通过修改pom.xml文件,那这个文件在哪里呢?这个文件是maven项目一新建就有的。

配置Maven的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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0modelVersion>
    <groupId>com.examplegroupId>
    <artifactId>maven-springmvcartifactId>
    <packaging>warpackaging>
    <version>1.0-SNAPSHOTversion>
    <name>maven-springmvc Maven Webappname>
    <url>http://maven.apache.orgurl>
    
    <dependencies>
        
        <dependency>
            <groupId>junitgroupId>
            <artifactId>junitartifactId>
            <version>3.8.1version>
            <scope>testscope>
        dependency>
        <dependency>
            <groupId>org.slf4jgroupId>
            <artifactId>slf4j-log4j12artifactId>
            <version>1.7.21version>
        dependency>

        
        <dependency>
            <groupId>javax.servletgroupId>
            <artifactId>javax.servlet-apiartifactId>
            <version>3.1.0version>
        dependency>
        <dependency>
            <groupId>javax.servlet.jspgroupId>
            <artifactId>jsp-apiartifactId>
            <version>2.2version>
        dependency>
        <dependency>
            <groupId>javax.servletgroupId>
            <artifactId>jstlartifactId>
            <version>1.2version>
        dependency>

        
        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
            <version>5.1.35version>
        dependency>

        
        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-webartifactId>
            <version>4.3.1.RELEASEversion>
        dependency>
        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-webmvcartifactId>
            <version>4.3.1.RELEASEversion>
        dependency>

        
        <dependency>
            <groupId>org.apache.commonsgroupId>
            <artifactId>commons-lang3artifactId>
            <version>3.4version>
        dependency>
        <dependency>
            <groupId>commons-fileuploadgroupId>
            <artifactId>commons-fileuploadartifactId>
            <version>1.3.1version>
        dependency>
    dependencies>

    <build>
        <finalName>maven-springmvcfinalName>
        <resources>
            
            <resource>
                <directory>${basedir}/src/main/javadirectory>
                <includes>
                    <include>**/*.propertiesinclude>
                    <include>**/*.xmlinclude>
                includes>
            resource>
            <resource>
                <directory>${basedir}/src/main/resourcesdirectory>
            resource>
        resources>
        <plugins>
            
            <plugin>
                <groupId>org.eclipse.jettygroupId>
                <artifactId>jetty-maven-pluginartifactId>
                <version>9.3.10.v20160621version>
            plugin>
        plugins>
    build>
project>

注意我们添加了依赖,我们还在下面的build里面添加了一些东西,这些东西我们在下面会提到。然后我们保存,idea会自动更新,下载所需要的lib。如果卡住了没关系,重启一下就好了。

如果没有自动下载的话,可以点击“Reimport All Maven Projects”按钮进行项目的重新载入。
这里写图片描述
jar下载完成后,所有项目所需的依赖就已经添加完成了。

顺便说一句:使用Spring时,缺少不了事务的存在,而事务是在spring-orm中,将spring-orm依赖到项目中,如果使用了事务,那需要在里面加上这个:

 <dependency>
        <groupId>org.springframeworkgroupId>
        <artifactId>spring-ormartifactId>
        <version>${org.springframework.version}version>
 dependency>

配置web.xml

maven默认生成的web.xml版本是2.3的,所以有些配置节点idea会识别不出来,因此我们重新添加一个3.0的。


<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
          http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">

    
    <servlet>
        <servlet-name>springMVCservlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
        <init-param>
            
            <param-name>contextConfigLocationparam-name>
            <param-value>classpath:spring/spring-mvc.xmlparam-value>
        init-param>
        <load-on-startup>1load-on-startup>
        <async-supported>trueasync-supported>
    servlet>
    <servlet-mapping>
        <servlet-name>springMVCservlet-name>
        <url-pattern>/url-pattern>
    servlet-mapping>

web-app>

大家注意,classpath:spring/spring-mvc.xml可能会报错,因为没有这个东西。那我们就新建一个。在resources文件夹下新建一个目录,命名为spring,然后在这个新建的文件夹下右击新建一个New->xmlConfigFile->SpringConfig 名称填spring-mvc.xml,然后就搞定了。

还有朋友说post请求乱码问题,我们在里面加上这个:

<filter>
       <filter-name>encodingFilterfilter-name>
       <filter-class>org.springframework.web.filter.CharacterEncodingFilterfilter-class>
       param>
           <param-name>encodingparam-name>
           <param-value>UTF-8param-value>
       param>
       param>
           <param-name>forceEncodingparam-name>
           <param-value>trueparam-value>
       param>
   filter>
   <filter-mapping>
       <filter-name>encodingFilterfilter-name>
       /*
   

配置Spring的spring-mvc.xml

这个spring-mvc怎么配置呢?我是这么配置的。文件里面介绍的很详细了我就不多数了。有朋友和我说怎么不用spring-boot,省去很多配置的麻烦,嗯,可以用,下一节再讲。(其实我也觉得这配置挺麻烦的,重点是有时候记不住需要去搜索这个的写法)


<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
                         http://www.springframework.org/schema/context
                        http://www.springframework.org/schema/context/spring-context-3.2.xsd
                        http://www.springframework.org/schema/mvc
                        http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    
    <context:annotation-config/>

    
    <context:component-scan base-package="com.larson.controller">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    context:component-scan>

    

    
   

    
    <mvc:resources mapping="/css/**" location="/statics/css/"/>
    <mvc:resources mapping="/js/**" location="/statics/js/"/>
    <mvc:resources mapping="/image/**" location="/statics/image/"/>

    
    <mvc:annotation-driven/>

    
    
    <bean id="defaultViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
    bean>

    
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="20971500"/>
        <property name="defaultEncoding" value="UTF-8"/>
        <property name="resolveLazily" value="true"/>
    bean>
beans>

我们看,上面新建的那个文件里面好几个地方会报错,我们一个一个来清理:

使用了Maven我们就应该把资源都放在resource下了,我开始的时候放在WEB-INF下,结果找答案找的我都快怀疑人生了都没有找了,最后想了想spring-mvc.xml的配置不是也是放在Resource下的么,果然,在resource下新建这几个文件夹,错误就消除了。

然后就是controller的配置,spring会寻找默认的controller;我们需要在这个文件里面配置,配置的地方我们做了注解就不多说了,我们来新建一个controller 的package。

有同学要求我把Controller的写法贴出来,那我就贴出来吧:

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * @author [email protected]
 * @create 2017-05-13-20:20
 */
// 注解标注此类为springmvc的controller,url映射为"/home"
@Controller
@RequestMapping("/home")
public class HomeController {

    //映射一个action
    @RequestMapping("/index")
    public  String index(){
        //返回一个index.jsp这个视图
        return "index";
    }
}

在views文件夹下建立一个jsp文件,名为“index.jsp”(statics同级目录下新建views,配置也是在spring里面配置)
基本的代码编写就完成了。

好了,基于maven的Spring环境我们已经搭建好了,现在开始把上次引入的mybatis引入进来。

查看依赖视图

这个功能真的很不错的。

View->Tool Buttons 看到左侧多了一列,project和structure的视图。我们打开pom.xml然后切换到structure视图,右击project->diagrams->show diagram。然后就看到了。

下一篇介绍,SSM整合。

你可能感兴趣的:(基于maven的spring mvc框架引入)