1. Maven插件-Tomcat插件

(1) Maven中的Tomcat插件的作用是什么?

使用 Tomcat 插件发布部署并执行 war 工程的时候,使用 maven build 功能实现。

(2) 如何在pom.xml文件中配置Maven的Tomcat插件?

<build>
<plugins>
<!-- 配置 Tomcat 插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>8080</port>
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>

(3) 如何将启动命令与查看启动日志命令同时执行?

Tomcat/bin/startup.sh & tailf tomcat/logs/catalina.out

2. Maven插件-远程热部署

(1) 什么是远程热部署?

远程热部署是指,在 Tomcat 容器运行过程中,动态实现 war 工程的部署,重新部署功能。

(2) 如何通过Tomcat插件对项目进行远程热部署?

使用 maven build 功能实现,具体命令为: tomcat7:deploy 或 tomcat7:redeploy。其中 deploy代表第一次部署 war 工程;redeploy 代表 Tomcat 容器中已有同名应用,本次操作为重新部署同名 war 工程。

3. Maven插件-资源拷贝插件

(1) Maven中的资源拷贝插件的作用是什么?

Maven 在打包时默认只将 src/main/resources 里的配置文件拷贝到项目中并做打包处理,而非 resource 目录下的配置文件在打包时不会添加到项目中。而通过资源拷贝插件,我们可以指定maven在打包时拷贝哪些位置的配置文件。

(2) 如何在pom.xml文件中配置Maven的资源拷贝插件?

<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
</build>

4. Maven常见命令介绍

(1) Install命令的作用是什么?

本地安装, 包含编译,打包,安装到本地仓库

编译 - javac

打包 - jar, 将 java 代码打包为 jar 文件

安装到本地仓库 - 将打包的 jar 文件,保存到本地仓库目录中。

(2) Clean命令的作用是什么?

清除已编译信息。

删除工程中的 target 目录。

(3) Compile命令的作用是什么?

只编译。 javac 命令

(4) Deploy命令的作用是什么?

部署。 常见于结合私服使用的命令。

相当于是 install+上传 jar 到私服。

包含编译,打包,安装到本地仓库,上传到私服仓库。

(5) Package命令的作用是什么?

打包。 包含编译,打包两个功能。

5. Maven私服介绍

(1) 什么是Maven的私服?

私服是一种特殊的远程仓库,它是架设在局域网的仓库服务,私服代理广域网上的远程

仓库,供局域网使用。

(2) 使用Maven私服有哪些好处?

在企业开发中,私服的建设是有必要的,其好处如下:

1.1 节省资金 节省资金 、 外网带宽

利用私服代理外部仓库之后,对外的重复构件下载便得以简化,降低外网带宽压力。

1.2 加速 Maven 构建不停地连接请求外部仓库是相当耗时的,但是 maven 的一些内部机制(如快照更新检查)要求 Maven 在执行构建的时候不停地检查远程仓库数据。因此,当项目配置了很多外部远程仓库的时候,构建速度会降低。使用私服解决这问题,因为 Maven 只需要检查局域网内私服的数据时,构建速度便有明显提高。

1.3 部署第三方构件

当某个构件无法从任何一个远程仓库获取怎么办?比如 Oracle 的 JDBC 驱动由于版权原因不能发布到公共仓库中。建立私服后,便可以将这些构件部署到这个内部仓库中,供内部 Maven 项目使用。

1.4 提高稳定性,增强控制

对于远程仓库来说,当外网不可用时,Maven 构建有可能因为依赖没有下载而不可行,

搭建并应用私服后,即使没有外网,如果该构件之前被其它人下载过就会存在私服上,此时再次依赖该构件就可以不用连接外网直接就可以从私服上下载到。同时私服软件(nexus)还提供了额外的管理功能。

1.5 降低中央仓库的负荷

中央仓库是有限的。如果所有的 Maven 工程开发过程中,都通过中央仓库实现构件的

依赖和管理,那么中央仓库的负荷过高,也会严重影响工程构建的效率。如果使用私服,可以分散中央仓库的负荷,只有在私服中没有需要依赖的构件时才会去连接中央仓库。

6. 安装Maven私服-Nexus

(1) 如何安装Nexus?

1 Nexus 资源包下载

Nexus 官方下载地址为:

https://www.sonatype.com/nexus-repository-oss

本课件应用版本为:nexus-2.11.2-03

2 Nexus 资源包解压

在/usr/local 目录中创建子目录 nexus:

mkdir /usr/local/nexus

解压 Nexus 到指定目录:

tar -zxvf nexus-2.11.2-03-bundle.tar.gz -C /usr/local/nexus

Nexus 压缩包中包含两个子目录: nexus-2.11.2-03 和 sonatype-work

nexus-2.11.2-03 是具体的私服应用内容,sonatype-work 是 Nexus 私服下载的构件存放工作目录。

3 检查私服端口和工作目录

在 nexus-2.11.2-03 目录中有子目录 conf,其中保存私服应用的配置信息。查看

nexus.properties 文件,确定私服访问端口和工作目录。此操作可不做任何内容修改。配置文

件内容如下:

# Jetty section,Nexus 私服应用是使用 Jetty 提供 web 服务的,下述内容为 Jetty 配置。
application-port=8081 # 私服访问端口
application-host=0.0.0.0
nexus-webapp=${bundleBasedir}/nexus # Nexus 私服 WEB 应用所在位置
nexus-webapp-context-path=/nexus # Nexus 私服 WEB 应用 contextPath
# Nexus section Nexus 私服配置信息
nexus-work=${bundleBasedir}/../sonatype-work/nexus # 私服工作目录,即构件保存目
录
runtime=${bundleBasedir}/nexus/WEB-INF # 私服 WEB 应用运行目录

4 修改 Nexus 运行用户

Nexus 私服在启动后,私服应用需要访问 Linux 的文件系统,所以需要有足够的权限。Nexus的启动脚本文件中,可以指定私服应用的访问用户,此信息在nexus-2.11.2-03/bin/nexus脚本文件中定义。需要修改的信息如下:

# NOTE - This will set the user which is used to run the Wrapper as well as
# the JVM and is not useful in situations where a privileged resource or
# port needs to be allocated prior to the user being changed.
#RUN_AS_USER= #原内容
RUN_AS_USER=root #修改后的内容,代表 Nexus 私服使用 root 用户权限。

5 修改防火墙,开放 Nexus 私服端口访问

修改防火墙配置文件,开放 Nexus 私服的访问端口 8081(2.2.2.3 章节内容)。

vi /etc/sysconfig/iptables增加下述内容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8081 -j ACCEPT
重新启动防火墙:
service iptables restart
2.2.2.6 启动并测试访问
启动 Nexus 私服:
/usr/local/nexus/nexus-2.11.2-03/bin/nexus start

成功启动后,控制台输出内容如下:

****************************************

WARNING - NOT RECOMMENDED TO RUN AS ROOT
****************************************
Starting Nexus OSS...
Started Nexus OSS.
可通过命令检查私服运行状态:
/usr/local/nexus/nexus-2.11.2-03/bin/nexus status
内容如下为私服运行中:
****************************************
WARNING - NOT RECOMMENDED TO RUN AS ROOT
****************************************
Nexus OSS is running (3883).
内容如下为私服未运行:
****************************************
WARNING - NOT RECOMMENDED TO RUN AS ROOT
****************************************
Nexus OSS is not running.

也可使用浏览器访问 Nexus 私服 WEB 应用, 访问地址为:

http://ip:8081/nexus (ip 为 Nexus 所在系统的访问 IP),访问效果如下:




本地启动flink 本地启动是什么意思_xml


1. 配置Nexus

(1) Nexus默认提供管理用户的登录名以及登录密码是什么?

用户名:admin

密码:admin123

(2) 什么是仓库组?

仓库组:Nexus 通过仓库组来统一管理多个仓库,这样访问仓库组就相当于访问仓库组

管理的多个仓库。

(3) 什么是宿主仓库?

宿主仓库:主要用于发布内部项目构件或第三方的项目构件(如购买商业的构件)以及

无法从公共仓库获取的构件(如 oracle 的 JDBC 驱动)。

Releases:发布内部的 releases 模块的仓库,所有非快照版本工程都发布到此仓库中。

Snapshots:发布内部的快照模块的仓库,所有工程版本以 SNAPSHOT 结尾的都发布到此仓库中。

3rd party:第三方依赖的仓库,这个数据通常是由内部人员自行下载之后发布上去

(4) 什么是代理仓库?

代理仓库:代理公共的远程仓库。

设置 proxy 代理仓库(Apache Snapshots/Central/Codehaus Snapshots)准许远程下载。


本地启动flink 本地启动是什么意思_xml_02


自此 Nexus 私服安装配置结束,私服下载中央仓库资源需要时间,一般企业都会提前搭建。

(5) 什么是虚拟仓库?

虚拟仓库:用于适配 Maven 1。

2. 配置settings.xml链接私服

(1) 如何在Maven的settings.xml文件中链接私服?

<?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>D:/repositories</localRepository>
<!--Maven 是否需要和用户交互以获得输入。如果 Maven 需要和用户交互以获得输入,则设置成 true,
反之则应为 false。默认为 true。-->
<interactiveMode>true</interactiveMode>
<!--表示 Maven 是否需要在离线模式下运行。如果构建系统需要在离线模式下运行,则为 true,默认
为 false。 -->
<offline>false</offline>

<!--当插件的组织 Id(groupId)没有显式提供时,供搜寻插件组织 Id(groupId)的列表。该元素

包含一个 pluginGroup 元素列表,每个子元素包含了一个组织 Id(groupId)。当我们使用某个插件,

并且没有在命令行为其提供组织 Id(groupId)的时候,Maven 就会使用该列表。

<pluginGroups>
<pluginGroup>org.mortbay.jetty</pluginGroup>
<pluginGroup>org.jenkins-ci.tools</pluginGroup>
</pluginGroups>
<proxies>
</proxies>
<!--配置服务端的一些设置。一些设置如安全证书不应该和 pom.xml 一起分发。这种类型的信息应该存
在于构建服务器上的 settings.xml 文件中。-->
<servers>
<server>
<!-- server 的 id 必须和 pom.xml 文件中的仓库 id 一致 -->
<!--这是 server 的 id(注意不是用户登陆的 id),该 id 与 distributionManagement 中
repository 元素的 id 相匹配。-->
<id>nexus-releases</id>
<username>deployment</username>
<password>deployment123</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>deployment</username>
<password>deployment123</password>
</server>
</servers>
<!--根据环境参数来调整构建配置的列表。-->
<profiles>
<profile>
<id>jdk-1.7</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.7</jdk>
</activation>
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion>
</properties>
</profile>
<profile>
<id>sxt</id>
<activation>
<activeByDefault>false</activeByDefault>
<jdk>1.7</jdk>
</activation>
<repositories>
<!-- 私有库配置 -->
<repository>
<!-- 私有库 id -->
<id>nexus</id>
<!-- 私有库地址 -->
<url>http://192.168.120.158:8081/nexus/content/groups/public/</url>
<!-- 私有库是否支持 releases 版本 -->
<releases>
<enabled>true</enabled>
</releases>
<!-- 私有库是否支持 snapshots 版本 -->
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<!-- 插件库配置,具体含义私有库配置 -->
<pluginRepository>
<id>nexus</id>
<url>http://192.168.120.158:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<!-- 激活 profile -->
<activeProfiles>
<!-- 根据 profile 的 id 标签值激活指定的内容 -->
<activeProfile>sxt</activeProfile>
</activeProfiles>
</settings>
3. 在Maven工程中使用私服
(1) 如何在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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>group</groupId>
<artifactId>project</artifactId>
<version>1.0</version>
<distributionManagement>
<repository>
<id>nexus-releases</id>
<name>Nexus Release Repository</name>
<url>http://192.168.120.158:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://192.168.120.158:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.1.2</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
4. Maven实战
(1) 使用Maven聚合工程创建项目,实现用户登录业务
Parent pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan
ce"
 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>com.bjsxt</groupId>
 <artifactId>11parent</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 <packaging>pom</packaging>
 <properties>
 <junit.version>4.12</junit.version>
 <spring.version>4.1.3.RELEASE</spring.version>
 <mybatis.version>3.2.8</mybatis.version>
 <mybatis.spring.version>
 1.2.2
 </mybatis.spring.version>
 <mysql.version>5.1.32</mysql.version>
 <slf4j.version>1.6.4</slf4j.version>
 <druid.version>1.0.9</druid.version>
 <jstl.version>1.2</jstl.version>
 <servlet-api.version>2.5</servlet-api.version>
 <jsp-api.version>2.0</jsp-api.version>
 <tomcat.version>2.2</tomcat.version>
 </properties>
 <!-- jar 包的依赖注入 ,由于该工程是一个父工程, 所以 jar 包在该 pom 文件中只是声明 -->
 <dependencyManagement>
 <dependencies>
 <!-- 单元测试 -->
 <dependency>
 <groupId>junit</groupId>
 <artifactId>junit</artifactId>
 <version>${junit.version}</version>
 <scope>test</scope>
 </dependency>
 <!-- 日志处理 -->
 <dependency>
 <groupId>org.slf4j</groupId>
 <artifactId>slf4j-log4j12</artifactId>
 <version>${slf4j.version}</version>
 </dependency>
 <!-- Mybatis -->
 <dependency>
 <groupId>org.mybatis</groupId>
 <artifactId>mybatis</artifactId>
 <version>${mybatis.version}</version>
 </dependency>
 <dependency>
 <groupId>org.mybatis</groupId>
 <artifactId>mybatis-spring</artifactId>
 <version>${mybatis.spring.version}</version>
 </dependency>
 <!-- MySql -->
 <dependency>
 <groupId>mysql</groupId>
 <artifactId>mysql-connector-java</artifactId>
 <version>${mysql.version}</version>
 </dependency>
 <!-- 连接池 -->
 <dependency>
 <groupId>com.alibaba</groupId>
 <artifactId>druid</artifactId>
 <version>${druid.version}</version>
 </dependency>
 <!-- Spring -->
 <dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-context</artifactId>
 <version>${spring.version}</version>
 </dependency>
 <dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-beans</artifactId>
 <version>${spring.version}</version>
 </dependency>
 <dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-webmvc</artifactId>
 <version>${spring.version}</version>
 </dependency>
 <dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-jdbc</artifactId>
 <version>${spring.version}</version>
 </dependency>
 <dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-aspects</artifactId>
 <version>${spring.version}</version>
 </dependency>
 <!-- JSP 相关 -->
 <dependency>
 <groupId>jstl</groupId>
 <artifactId>jstl</artifactId>
 <version>${jstl.version}</version>
 </dependency>
 <dependency>
 <groupId>javax.servlet</groupId>
 <artifactId>servlet-api</artifactId>
 <version>${servlet-api.version}</version>
 <scope>provided</scope>
 </dependency>
 <dependency>
 <groupId>javax.servlet</groupId>
 <artifactId>jsp-api</artifactId>
 <version>${jsp-api.version}</version>
 <scope>provided</scope>
 </dependency>
 </dependencies>
 </dependencyManagement>
 <!-- 插件的开启 -->
 <build>
 <!-- tomcat 插件,由于子项目不一定每个都是 web 项目,所以该插件只是声明,并未开启 -->
 <pluginManagement>
 <plugins>
 <!-- 配置 Tomcat 插件 -->
 <plugin>
 <groupId>org.apache.tomcat.maven</groupId>
 <artifactId>tomcat7-maven-plugin</artifactId>
 <version>${tomcat.version}</version>
 </plugin>
 </plugins>
 </pluginManagement>
 <!-- maven 的编译器插件,该插件主要是决定了当前 项目所使用 jre 版本 。由于无论是 jar,还是 war 项目都需要 制定 jar 
 的版本,所以该插件不需要生命,应当是开启的。 -->
 <plugins>
 <plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-compiler-plugin</artifactId>
 <version>3.2</version>
 <configuration>
 <source>1.7</source>
 <target>1.7</target>
 <encoding>UTF-8</encoding>
 </configuration>
 </plugin>
 </plugins>
 </build>
</project>
Manager 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>
 <parent>
 <groupId>com.bjsxt</groupId>
 <artifactId>12manager</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 </parent>
 <artifactId>manager-controller</artifactId>
 <packaging>war</packaging>
 <dependencies>
 <dependency>
 <groupId>com.bjsxt</groupId>
 <artifactId>manager-service</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 </dependency>
 <!-- JSP 相关 -->
 <dependency>
 <groupId>jstl</groupId>
 <artifactId>jstl</artifactId>
 </dependency>
 <dependency>
 <groupId>javax.servlet</groupId>
 <artifactId>servlet-api</artifactId>
 <scope>provided</scope>
 </dependency>
 <dependency>
 <groupId>javax.servlet</groupId>
 <artifactId>jsp-api</artifactId>
 <scope>provided</scope>
 </dependency>
 </dependencies>
 <build>
 <plugins>
 <!-- 配置Tomcat插件 -->
 <plugin>
 <groupId>org.apache.tomcat.maven</groupId>
 <artifactId>tomcat7-maven-plugin</artifactId>
 <configuration>
 <port>8080</port>
 <path>/</path>
 </configuration>
 </plugin>
 </plugins>
 </build>
</project>
Manager-controller 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>
 <parent>
 <groupId>com.bjsxt</groupId>
 <artifactId>12manager</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 </parent>
 <artifactId>manager-controller</artifactId>
 <packaging>war</packaging>
 <dependencies>
 <dependency>
 <groupId>com.bjsxt</groupId>
 <artifactId>manager-service</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 </dependency>
 <!-- JSP 相关 -->
 <dependency>
 <groupId>jstl</groupId>
 <artifactId>jstl</artifactId>
 </dependency>
 <dependency>
 <groupId>javax.servlet</groupId>
 <artifactId>servlet-api</artifactId>
 <scope>provided</scope>
 </dependency>
 <dependency>
 <groupId>javax.servlet</groupId>
 <artifactId>jsp-api</artifactId>
 <scope>provided</scope>
 </dependency>
 </dependencies>
 <build>
 <plugins>
 <!-- 配置Tomcat插件 -->
 <plugin>
 <groupId>org.apache.tomcat.maven</groupId>
 <artifactId>tomcat7-maven-plugin</artifactId>
 <configuration>
 <port>8080</port>
 <path>/</path>
 </configuration>
 </plugin>
 </plugins>
 </build>
</project>
PageController
package com.bjsxt.web.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
/**
 * 页面跳转Controller
 * @author MSI-PC
 *
 */
@Controller
public class PageContoller {
 @RequestMapping("/{page}")
 public String showPage(@PathVariable String page) {
 return page;
 }
}
UserContoller
package com.bjsxt.web.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import com.bjsxt.pojo.Users;
import com.bjsxt.service.UserService;
/**
 * 操作UserController
 * @author MSI-PC
 *
 */
@Controller
@RequestMapping("/user")
public class UserController {
 @Autowired
 private UserService userService;
 @RequestMapping("/addUser")
 public String addUser(Users user) {
 this.userService.addUser(user);
 return "ok";
 }
 @RequestMapping("/findUser")
 public String findUser(Model model) {
 List<Users> list = this.userService.findUser();
 model.addAttribute("list", list);
 return "showUser";
 }
}
Manager-mapper 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>
 <parent>
 <groupId>com.bjsxt</groupId>
 <artifactId>12manager</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 </parent>
 <artifactId>manager-mapper</artifactId>
 <dependencies>
 <dependency>
 <groupId>com.bjsxt</groupId>
 <artifactId>manager-pojo</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 </dependency>
 <!-- Mybatis -->
 <dependency>
 <groupId>org.mybatis</groupId>
 <artifactId>mybatis</artifactId>
 </dependency>
 <dependency>
 <groupId>org.mybatis</groupId>
 <artifactId>mybatis-spring</artifactId>
 </dependency>
 <!-- MySql -->
 <dependency>
 <groupId>mysql</groupId>
 <artifactId>mysql-connector-java</artifactId>
 </dependency>
 <!-- 连接池 -->
 <dependency>
 <groupId>com.alibaba</groupId>
 <artifactId>druid</artifactId>
 </dependency>
 </dependencies>
 <build>
 <!-- 添加资源拷贝插件 -->
 <resources>
 <resource>
 <directory>src/main/java</directory>
 <includes>
 <include>**/*.xml</include>
 </includes>
 </resource>
 <resource>
 <directory>src/main/resources</directory>
 <includes>
 <include>**/*.xml</include>
 <include>**/*.properties</include>
 </includes>
 </resource>
 </resources>
 </build>
</project>
UserMapper
package com.bjsxt.mapper;
import java.util.List;
import com.bjsxt.pojo.Users;
public interface UserMapper {
 public void insertUser(Users user);
 public List<Users> selectUserAll();
}
UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//http://mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.bjsxt.mapper.UserMapper" >
 <insert id="insertUser" parameterType="com.bjsxt.pojo.Users">
 insert into users(username,userage) values(#{username},#{userage})
 </insert>
 <select id="selectUserAll" resultType="com.bjsxt.pojo.Users">
 select * from users
 </select>
</mapper>
Manager-pojo 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>
 <parent>
 <groupId>com.bjsxt</groupId>
 <artifactId>12manager</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 </parent>
 <artifactId>manager-pojo</artifactId>
</project>
Users
package com.bjsxt.pojo;
public class Users {
 private int userid;
 private String username;
 private int userage;
 public int getUserid() {
 return userid;
 }
 public void setUserid(int userid) {
 this.userid = userid;
 }
 public String getUsername() {
 return username;
 }
 public void setUsername(String username) {
 this.username = username;
 }
 public int getUserage() {
 return userage;
 } 
 public void setUserage(int userage) {
 this.userage = userage;
 }
}
Manager-service 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>
 <parent>
 <groupId>com.bjsxt</groupId>
 <artifactId>12manager</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 </parent>
 <artifactId>manager-service</artifactId>
 <dependencies>
 <dependency>
 <groupId>com.bjsxt</groupId>
 <artifactId>manager-mapper</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 </dependency>
 <!-- Spring -->
 <dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-context</artifactId>
 </dependency>
 <dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-beans</artifactId>
 </dependency>
 <dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-webmvc</artifactId>
 </dependency>
 <dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-jdbc</artifactId>
 </dependency>
 <dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-aspects</artifactId>
 </dependency>
 </dependencies>
</project>
UserService
package com.bjsxt.service;
import java.util.List;
import com.bjsxt.pojo.Users;
public interface UserService {
 public void addUser(Users user); 
 public List<Users> findUser();
}
UserServiceImpl
package com.bjsxt.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.bjsxt.mapper.UserMapper;
import com.bjsxt.pojo.Users;
import com.bjsxt.service.UserService;
@Service
public class UserServiceImpl implements UserService{
 @Autowired
 private UserMapper userMapper;
 @Override
 public void addUser(Users user) {
 // TODO Auto-generated method stub
 this.userMapper.insertUser(user); 
 }
 @Override
 public List<Users> findUser() {
 // TODO Auto-generated method stub
 return this.userMapper.selectUserAll();
 }
}