使用maven 创建 springmvc整合mybatis项目 踩过的坑

@(环境配置)

摘要

这篇主要是记录自己使用 sts 使用maven搭建 springmvc整合mybatis项目过程和踩过的一些坑:

  1. 项目目录结构问题
  2. Dynamic Web2.3 和 Dynamic Web3.0 兼容问题
  3. 各种文件存放目录问题

使用sts创建 maven项目

选择 webapp 项目:

1.jpg

填写项目信息:

2.jpg

创建后目录如下:

3.png

真是有点坑啊,刚刚创建的最基本的maven项目,直接就报错,而且大家可以看到,项目目录是又问题的,现在我们来解决下面两个问题:

项目目录结构问题

这个问题很好解决,主要是因为 jdk 导致的,我们可以右键项目->build path-> configure build path

4.png

编辑项目使用的jdk环境为自己安装的jdk环境,我这里安装的是 java8.0, 所以选择 java1.8.

5.png

然后 finish -> applay 之后,可以看到项目目录结构正常了:

6.png

解决错误

错误是因为没有引入包导致的,我们可以直接引入 servlet 的包就可以解决:
在 pom.xml 文件中引入 dependency, 解决问题

<!-- servlet -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
</dependency>
7.png

Web2.3 转 Web3.0 问题

这个问题的来源主要是因为我的web.xml 默认是 2.3的,但是现在基本上都使用 3.0 的配置了,但是 sts创建的基本webapp还是 2.3,就比较坑爹了。网上看了很多方法,需要修改各种配置文件,太过于麻烦,这里提供一个简单的方法:
项目属性 -> project facets:

8.png

可以看到当前状态是 web 2.3 以及 java 1.5:

  1. 先将 java1.5 修改为 自己安装的 jdk 版本,我这里是java1.8,可直接修改
  2. 但是如果此时你直接修改 Dynamic web module 为 3.0 的话,会报错:
9.png

所以我们先将它 取消勾选,点击ok,

10.png

然后再次进到这里,勾选它:

11.png

此时可以直接点击OK,也可以选择下面的further configuration avaliable:

12.png
  • 可以保持默认,然后就会创建WebContent 目录,以及勾选 web.xml 文件。
  • 我这里提供另外一种方法,将 WebContent 修改为:src/main/webapp,大家可能就明白了,这个为了兼容 2.3 的配置文件,这样我就不需要删除原来的配置文件了。
13.png

两种方法都可以,我选择的是后者。
修改到这里,项目居然有错:

14.png

看一下 probleams:

15.png

是因为 web.xml 下的配置还是2.3,这里直接修改为:

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

  <display-name>Archetype Created Web Application</display-name>
</web-app>

搞定。

然后 alt+F5 更新项目,又出错了:

16.png

还记得刚刚开始我们修改自己的项目jdk为1.8,但是这里为什么还是1.5呢?
我们需要再在 pom.xml 文件中添加 一个 plugin:

<build>
    <finalName>spring-mybatis</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>

然后 alt+F5 更新项目,问题终于解决完了:

17.png

最后是关于文件存放目录的问题

这里直接截个图:

18.png

需要说明的是,在maven打包过程中,会将所有的这些文件都打到war包中,包括 web.xml 等一些文件。
我这里想强调的是,在 web3.0项目中,mapping文件夹不能再存放在 src/main/java 下, src/main/java 下只会把 java文件打包,而在2.3中,所有 src/main/java 下的文件,包括配置文件,都会被打包,这点需要注意。 所以我们需要将 mapping 文件夹放到 resources 目录下。

代码下载:

其他的没什么好说的了,大家可以在网上搜得到,下面再提供我项目的最基本设置,供大家参考:

http://pan.baidu.com/s/1c2FmSLU

推荐阅读更多精彩内容