接着上一篇文章,我们已经完成springMVC+mybatis项目的登录功能,对相关知识也有了简单的了解,那么,helloworld就不再适合我们了,我们来尝试带有业务需求的去创建一个项目,在实战中完善对知识点的积累和学习,所以我们打算创建一个工程,用来统计所有同事的周报内容,并根据查询结果做excel导出。

首先我们来完成主体功能,最后在完善系统,接下来让我们一步步来

1、根据我们之前所学,先来创建一个工程,工程名叫wrmp(Work Record Manage Platform的缩写),我们之前没有用maven是为了让我们属实一下项目创建的基本需求,现在我们既然做实战项目,我们按实际情况来,使用maven来管理我们的jar包并构建项目。

  我们使用的是sts,所以创建spring项目会和通常的eclipse有些不同,这里我只做sts的创建介绍,相信eclipse创建maven项目的流程肯定有很多大神已经分享过了,朋友们可以参考。

  1)、下载maven的免安装包,解压到你电脑的指定空间作为maven的工作空间(我本就解压到C:\maven,创建E:\m2文件夹作为maven的本地仓库),配置maven配置文件(maven/conf/settings.xml)

  创建一个简单的springMVC+mybatis项目(三)

  因为我们自己开发学习,不是刻意学习maven,所以不用搭建maven私服,我们也就统一使用中央仓库(即maven的默认仓库),那我们就只需要在setting文件中配置下本地仓库地址就可以了,以后到了企业,肯定还要配置公司私服地址,具体配置可以单独学习

  

<?xml version="1.0" encoding="UTF-8"?>


<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
            <localRepository>E:/m2/repository</localRepository>
 
</settings>

  2)、maven准备好了,我们来配置下sts工作空间,使其使用我们刚刚准备好的maven管理我们这个工作空间所有项目的jar包

        创建一个简单的springMVC+mybatis项目(三)

  点击window->选择preference->搜索框输入maven->选择installations->点击add

    创建一个简单的springMVC+mybatis项目(三)

 点击Directory… 找到你的maven存放路径,点击finish

 创建一个简单的springMVC+mybatis项目(三)

 选中你刚添加进来的maven点击下面的ok按钮

 创建一个简单的springMVC+mybatis项目(三)

点击user settings -> 点击Browse… 找到你的maven的setting.xml ->点击apply按钮->点击ok按钮完成sts工作空间maven的配置

创建一个简单的springMVC+mybatis项目(三)

3)、window->preferences-> general -> Workspace设置工作空间的编码格式为UTF-8

创建一个简单的springMVC+mybatis项目(三)

 4)、右键-> new spring project如下图,选择spring mvc project -> next

 创建一个简单的springMVC+mybatis项目(三)

 填入你的包名,finish即可,你的项目创建成功了

 创建一个简单的springMVC+mybatis项目(三)

然后你会发现你的项目报错,不用担心sts会自动帮我们构建项目并使用maven下载我们需要的包

创建一个简单的springMVC+mybatis项目(三)

然后我们的项目就创建完了,sts帮我们创建了一个springMVC项目,需要的文件和工程结构也都已经帮我们创建好了,看到一下的截图,你可能会发现,有个pom.xml是我们之前没有见过的,接下来我们就来看看这个pom.xml是做什么用的,不过这之前,老规矩,启动下项目,测试下是否能正常启动。

创建一个简单的springMVC+mybatis项目(三)

a-ok,我们成功了,下面我们来看下pom.xml

创建一个简单的springMVC+mybatis项目(三)

2、一个使用springMVC框架工程的基本骨架我们我们已经搭建好了,有的朋友可能要问,我们为什么没有需要引入相关的jar包呢?因为我们使用了maven呀,在构建sts的时候maven已经帮我们从我们配置的仓库(私服,这里我们没有配置,所以是走的默认的中央仓库)下载了我们需要的jar包并帮我们导入构建到了项目中。这时候你可能有想问了,可是maven怎么知道我们需要那些jar包已经需要什么版本呢?这就要看看我们刚才提到的pom.xml文件了。我们在pom中配置好我们需要jar包,在执行maven更新命令时,我们安装的maven插件就会去读取我们的pom文件,然后为我们下载我们需要的并配置在其中的jar包,下面我们来看看,一个springMVC+mybatis项目需要的jar包配置文件pom是啥样的:

<?xml version="1.0" encoding="UTF-8"?>
<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.0</modelVersion>
    <!-- 默认基础包名,也是发布到maven私服时保存的路径名 -->
    <groupId>com.thc</groupId>
    <!-- 项目名 -->
    <artifactId>wrmp</artifactId>
    <name>wrmp</name>
    <!-- 当前项目在时候maven打包时,项目的打包后的文件类型 一般java项目打包类型是jar或是war,我们web项目都是打war包,即wrmp.war -->
    <packaging>war</packaging>
    <!-- 当前开发项目的版本 -->
    <version>1.0.0-BUILD-SNAPSHOT</version>
    <properties>
        <java-version>1.6</java-version>
        <org.springframework-version>3.1.1.RELEASE</org.springframework-version>
        <org.aspectj-version>1.6.10</org.aspectj-version>
        <org.slf4j-version>1.6.6</org.slf4j-version>
        <!-- 指明编译源代码时使用的字符编码,maven编译的时候默认使用的GBK编码, 通过project.build.sourceEncoding属性设置字符编码,告诉maven这个项目使用UTF-8来编译 -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>
        <!-- Spring 项目使用的基本包 start -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${org.springframework-version}</version>
            <exclusions>
                <!-- 排除 spring-context包中引用的的 commons-logging包 -->
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <!-- Spring 项目使用的基本包 end -->
        <!-- AspectJ -->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
            <version>${org.aspectj-version}</version>
        </dependency>

        <!-- Logging日志包 start -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${org.slf4j-version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>${org.slf4j-version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${org.slf4j-version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.15</version>
            <exclusions>
                <exclusion>
                    <groupId>javax.mail</groupId>
                    <artifactId>mail</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>javax.jms</groupId>
                    <artifactId>jms</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jdmk</groupId>
                    <artifactId>jmxtools</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jmx</groupId>
                    <artifactId>jmxri</artifactId>
                </exclusion>
            </exclusions>
            <scope>runtime</scope>
        </dependency>
        <!-- Logging日志包 end -->

        <!-- @Inject -->
        <dependency>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
            <version>1</version>
        </dependency>

        <!-- web项目中的Servlet包 start -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <!-- web项目中的Servlet包 end -->
        <!-- Test 单元测试 start -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.7</version>
            <scope>test</scope>
        </dependency>
        <!-- Test 单元测试 end -->
        <!-- mybatis需要的包 start -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.2.6</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
        <dependency>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-core</artifactId>
            <version>1.3.2</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/commons-dbcp/commons-dbcp -->
        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>1.4</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.18</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>3.1.1.RELEASE</version>
            <exclusions>
                <exclusion>
                    <artifactId>spring-beans</artifactId>
                    <groupId>org.springframework</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- mybatis需要的包 end -->
        <!-- spring requestbody 转换request中的表单内容使用 start -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.9.5</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.9.5</version>
        </dependency>
        <!-- spring requestbody 转换request中的表单内容使用 end -->
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <artifactId>maven-eclipse-plugin</artifactId>
                <version>2.9</version>
                <configuration>
                    <additionalProjectnatures>
                        <projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>
                    </additionalProjectnatures>
                    <additionalBuildcommands>
                        <buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand>
                    </additionalBuildcommands>
                    <downloadSources>true</downloadSources>
                    <downloadJavadocs>true</downloadJavadocs>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.5.1</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                    <compilerArgument>-Xlint:all</compilerArgument>
                    <showWarnings>true</showWarnings>
                    <showDeprecation>true</showDeprecation>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.2.1</version>
                <configuration>
                    <mainClass>org.test.int1.Main</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
pom.xml

相关文章: