MongoDB开发之路(五)--SpringBoot+MongoDB整合

启动IntelLiJ IDEA,建立springBoot工程,搭建环境过程如下所示。
(1)pom.xml依赖文件

<?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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.yzh.maven</groupId>
<artifactId>springbootmongodbdemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>springbootmongodbdemo</name>
<description>Demo project for Spring Boot</description>
<url>http://projects.spring.io/spring-boot/</url>
   <!-- 继承父包,此包会添加依赖,spring用到的核心包-->
   <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>1.4.0.RELEASE</version>
      <relativePath></relativePath>
   </parent>

   <!-- spring-boot的web启动的jar包 -->
   <dependencies>
      <!-- web  依赖 -->
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-web</artifactId>
      </dependency>

      <!-- servlet 依赖 -->
      <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>javax.servlet-api</artifactId>
         <scope>provided</scope>
      </dependency>
      <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>jstl</artifactId>
      </dependency>
      <!-- tomcat 的支持    .-->
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-tomcat</artifactId>
         <scope>provided</scope>
      </dependency>

      <dependency>
         <groupId>org.apache.tomcat.embed</groupId>
         <artifactId>tomcat-embed-jasper</artifactId>
      </dependency>

      <dependency>
         <groupId>commons-lang</groupId>
         <artifactId>commons-lang</artifactId>
         <version>2.6</version>
      </dependency>

      <!-- 集成mybatis -->
      <dependency>
         <groupId>org.mybatis.spring.boot</groupId>
         <artifactId>mybatis-spring-boot-starter</artifactId>
         <version>1.3.1</version>
      </dependency>

      <!--日志打印-->
      <dependency>
         <groupId>org.apache.logging.log4j</groupId>
         <artifactId>log4j-slf4j-impl</artifactId>
         <version>2.6.2</version>
      </dependency>

      <!-- mybatis分页插件 -->
      <dependency>
         <groupId>com.github.pagehelper</groupId>
         <artifactId>pagehelper</artifactId>
         <version>4.1.6</version>
      </dependency>

<!—mongodb jar包支持-->
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-data-mongodb</artifactId>
      </dependency>

      <dependency>
         <groupId>javax.persistence</groupId>
         <artifactId>persistence-api</artifactId>
         <version>1.0.2</version>
      </dependency>

      <dependency>
         <groupId>org.apache.shiro</groupId>
         <artifactId>shiro-core</artifactId>
         <version>1.2.1</version>
      </dependency>
      <dependency>
         <groupId>org.apache.shiro</groupId>
         <artifactId>shiro-web</artifactId>
         <version>1.2.1</version>
      </dependency>
      <dependency>
         <groupId>org.apache.shiro</groupId>
         <artifactId>shiro-ehcache</artifactId>
         <version>1.2.1</version>
      </dependency>
      <dependency>
         <groupId>org.apache.shiro</groupId>
         <artifactId>shiro-spring</artifactId>
         <version>1.2.1</version>
      </dependency>

      <dependency>
         <groupId>org.codehaus.jackson</groupId>
         <artifactId>jackson-mapper-asl</artifactId>
         <version>1.9.13</version>
      </dependency>

      <dependency>
         <groupId>net.sf.json-lib</groupId>
         <artifactId>json-lib</artifactId>
         <version>2.2.1</version>
         <classifier>jdk15</classifier>
      </dependency>

      <dependency>
         <groupId>struts</groupId>
         <artifactId>struts</artifactId>
         <version>1.2.9</version>
         <exclusions>
         </exclusions>
      </dependency>

      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-test</artifactId>
         <scope>test</scope>
      </dependency>
   </dependencies>

   <!-- Package as an executable JAR -->
   <build>
      <plugins>
         <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
         </plugin>
      </plugins>
   </build>

   <!-- Allow access to Spring milestones and snapshots -->
   <!-- (you don't need this if you are using anything after 0.5.0.RELEASE) -->
   <repositories>
      <repository>
         <id>spring-snapshots</id>
         <url>http://repo.spring.io/snapshot</url>
         <snapshots>
            <enabled>true</enabled>
         </snapshots>
      </repository>
      <repository>
         <id>spring-milestones</id>
         <url>http://repo.spring.io/milestone</url>
         <snapshots>
            <enabled>true</enabled>
         </snapshots>
      </repository>
   </repositories>
   <pluginRepositories>
      <pluginRepository>
         <id>spring-snapshots</id>
         <url>http://repo.spring.io/snapshot</url>
      </pluginRepository>
      <pluginRepository>
         <id>spring-milestones</id>
         <url>http://repo.spring.io/milestone</url>
      </pluginRepository>
   </pluginRepositories>
</project>

(2)建立application.yml或application.properties

1)application.properties
#端口
server.port=8088
#视图解析前缀
spring.mvc.view.prefix=/WEB-INF/jsp/
#视图解析后缀
spring.mvc.view.suffix=.jsp
#mongodb访问路径
spring.data.mongodb.uri=mongodb://localhost:27017/test

2)application.yml
server:
    port: 8088
spring:
    data:
        mongodb:
            uri: mongodb://localhost:27017/test
    mvc:
        view:
            prefix: /WEB-INF/jsp/
            suffix: .jsp

(3)建立webapp/WEB-INF/jsp路径
默认情况下,springboot并不支持jsp文件的解析,因此你需要加入上面pom.xml中的jar包:

  <!-- spring-boot的web启动的jar包 -->
   <dependencies>
      <!-- web  依赖 -->
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-web</artifactId>
      </dependency>

      <!-- servlet 依赖 -->
      <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>javax.servlet-api</artifactId>
         <scope>provided</scope>
      </dependency>
      <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>jstl</artifactId>
      </dependency>
      <!-- tomcat 的支持    .-->
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-tomcat</artifactId>
         <scope>provided</scope>
      </dependency>

      <dependency>
         <groupId>org.apache.tomcat.embed</groupId>
         <artifactId>tomcat-embed-jasper</artifactId>
      </dependency>

如果需要通过controller层访问jsp,那么就需要在src/main目录下面手动建立webapp/WEB-INF/jsp目录,同时在该目录下建立jsp文件。

(4)建立实体类

package com.yzh.maven.entity;
import org.springframework.data.mongodb.core.mapping.Document;
@Document(collection="userInfo")
public class UserInfo{
    private String userName;
    private String password;
    private int age;
    private String sex;
    private String tel;
    private String email;
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public String getTel() {
        return tel;
    }
    public void setTel(String tel) {
        this.tel = tel;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public UserInfo(String userName, String password, int age, String sex,
            String tel, String email) {
        super();
        this.userName = userName;
        this.password = password;
        this.age = age;
        this.sex = sex;
        this.tel = tel;
        this.email = email;
    }
    public UserInfo() {
        super();
    }
    @Override
    public String toString() {
        return "UserInfo [userName=" + userName + ", password=" + password
                + ", age=" + age + ", sex=" + sex + ", tel=" + tel + ", email="
                + email + "]";
    }
}

注意:实体类的命名需要与mongoDB中的集合名字一一对应,例如:在mongoDB中的集合为userInfo,那么实体类为UserInfo;或者我们更推荐在实体类上方添加@Document(collection=”集合名”),以此来注明该实体类对应的是哪一个集合名称。

(5)建立UserInfoService接口

package com.yzh.maven.service;
import java.util.List;
import com.yzh.maven.base.plugin.Pagination;
import com.yzh.maven.entity.UserInfo;

/**
 * 
 * @author
 */
public interface UserInfoService{

    /**
     * 添加
     * @param User
     */
    public void addUser(UserInfo User);

    /**
     * 删除
     * @param id
     */
    public void removeUser(String id);

    /**
     * 保存或修改
     * @param User
     */
    public void saveOrUpdateUser(UserInfo User);

    /**
     * 根据id查询单个
     * @param id
     * @return
     */
    public UserInfo findById(String id);

    /**
     * 根据用户名查询
     * @param id
     * @return
     */
    public UserInfo findByUsername(String username);

    /**
     * 查询所有
     * @return
     */
    public List<UserInfo> findAll();

    /**
     * 分页查询
     * @return
     */
    public void queryPage(Pagination<UserInfo> pagination);
}

(6)建立UserServiceImpl实现类

package com.yzh.maven.service.impl;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Repository;
import com.yzh.maven.base.plugin.Pagination;
import com.yzh.maven.entity.UserInfo;
import com.yzh.maven.service.UserInfoService;
/**
 * @author
 */
@Repository
public class UserServiceImpl implements UserInfoService {

    @Autowired
    private MongoTemplate mongoTemplate;

    public void addUser(UserInfo User) {
        //1.如果没有指定集合,则默认添加到和对象名称相同的集合中,没有则创建一个
        //2.也可以指定集合 mongoTemplate.save(User, "User_db");
        mongoTemplate.save(User);
    }

    public void removeUser(String id) {

        UserInfo User = findById(id);
        mongoTemplate.remove(User);
    }

    public void saveOrUpdateUser(UserInfo User) {

        mongoTemplate.save(User);
    }

    public UserInfo findById(String id) {

        return mongoTemplate.findById(id, UserInfo.class);
    }

    public List<UserInfo> findAll() {
        return mongoTemplate.findAll(UserInfo.class);
    }

    public UserInfo findByUsername(String username) {
        //根据username查询
        Query sql = new Query(Criteria.where("username").is(username));

        return mongoTemplate.findOne(sql,UserInfo.class);
    }

    @Override
    public void queryPage(Pagination<UserInfo> pagination){
        //当前页
        int pageNow = pagination.getPageNo();
        //每页记录数
        int pageSize = pagination.getPageSize();
        //总记录数
        int totalRecord = findAll().size();
        int endRow = pageNow*pageSize;
        if(totalRecord<endRow){
            endRow = totalRecord;
        }
        //获取当前页信息
        List<UserInfo> newResultList = new ArrayList<UserInfo>();
        for(int i = (pageNow-1)*pageSize;i<endRow;i++){
            newResultList.add(findAll().get(i));
        }

        //分页查询参数设置
        List<UserInfo> results = newResultList; 
        pagination.setResults(results);
        pagination.setTotalPage((int)Math.ceil(totalRecord/pageSize));
        pagination.setTotalRecord(totalRecord);
    } 
}

说明:MongoTemplate类封装了Java对MongoDB数据库的基本操作,因此我们可以直接通过该类来操作MongoDB数据库。

(7)建立controller控制器

/* *
 * Amendment History:
 * 
 * Date                   By              Description
 * -------------------    -----------     -------------------------------------------
 * 2018-08-31             yzh         Create the class
 */
package com.yzh.maven.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.yzh.maven.base.model.DataMessage;
import com.yzh.maven.base.plugin.Pagination;
import com.yzh.maven.entity.UserInfo;
import com.yzh.maven.service.UserInfoService;
import org.springframework.web.bind.annotation.RestController;

/**
 * @FileName UserInfoController.java
 * @Description: 用户信息操作Controller
 * @Date 2018年8月31日
 * @author yzh
 * @version 1.0.3
 * 
 */
@Controller
@RequestMapping("/list")
public class UserInfoController{
   @Autowired
   private UserInfoService userInfoService;
   private static final Logger LOG = LoggerFactory.getLogger(UserInfoController.class);
   /**
    * @functionName: listUserInfos
    * @description: 分页查询
    * @param pageParams
    * @author yzh
    * @date 2018年8月31日
    */
   @ResponseBody
   @RequestMapping(value = "/listUserInfos.action")
   public DataMessage listUserInfos(Pagination<UserInfo> pageParams) throws Exception {
      userInfoService.queryPage(pageParams);
      return DataMessage.successData(pageParams);
   }
   /**
    * @functionName: toIndex
    * @description: 跳转到初始化页面
    * @param 
    * @author yzh
    * @date 2018年8月31日
    */
   @RequestMapping(value="/toIndex")
   public String toIndex(){
      return "index";//返回webapp/WEB-INF/jsp目录下面的index.jsp
   }
}

(8)测试
在浏览器的地址栏中输入http://localhost:8088/list/toIndex,可以看到index.jsp被解析的数据信息。

(9)常见异常及解决办法
1)Cannot determine embedded database driver class for database type NONE
原因:
springboot默认是需要datasource的,如果你没有配置datasource就会报上面的错误,因为springboot 启动时会自动注入数据源和配置 jpa
解决办法:
将启动类的@SpringBootApplication注解修改为:@SpringBootApplication(exclude={DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class}),也就是去掉默认的数据源配置。

2)java.io.FileNotFoundException: F:\softwareAll\MavenRepository\xalan\xalan\2.5.1\xml-apis.jar (系统找不到指定的文件。)
出现这个错误时,你会感觉到非常奇怪,因为即便是该jar包不存在,程序照样能够启动,而且在maven本地资源管理库中的目录应该是xalan\xalan\2.5.1,原来springboot默认会启动8.5.2或以上的内置tomcat服务器版本,8.5.2或以上版本的内置tomcat服务器会解析jar中MANIFEST.MF文件,当该文件包含class-path属性时,会把该属性对象值,解析成需要加载的jar给加载进来:

解决办法:
将springboot默认的降版本到8.5.0,如果对springboot内置的tomcat版本进行降级处理呢?
第一步:在标签外添加版本属性及版本号:

<properties>
   <tomcat.version>8.5.0</tomcat.version>
</properties>

第二步:加入如下依赖jar包:

<!-- spring-boot的web启动的jar包 -->
<dependency>
   <groupId>org.apache.tomcat</groupId>
   <artifactId>tomcat-juli</artifactId>
   <version>${tomcat.version}</version>
</dependency>
<dependency>
   <groupId>org.apache.tomcat.embed</groupId>
   <artifactId>tomcat-embed-logging-juli</artifactId>
   <version>${tomcat.version}</version>
</dependency>

重启启动类即可完美运行。

3)工程中有多个main类

[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.4.0.RELEASE:repackage (default) on project springbootmongodbdemo: Execution default of goal org.springframework.boot:spring-boot-maven-plugin:1.4.0.RELEASE:repackage failed: Unable to find a single main class from the following candidates [com.yzh.maven.SpringbootmongodbdemoApplication, com.yzh.maven.base.utils.JacksonUtils, com.yzh.maven.base.utils.StaticMethod] -> [Help 1]

说明:有些开发人员在开发过程中喜欢编写main类金星测试,结果在打包运行时,会报告上面的错误,上面的错误是指com.yzh.maven.SpringbootmongodbdemoApplication, com.yzh.maven.base.utils.JacksonUtils, com.yzh.maven.base.utils.StaticMethod三个类中的都存在main方法,而这个在jar中是不允许的,在springboot程序中,只能保留一个启动类的main方法。

4) 日志jar包冲突
Caused by: java.lang.IllegalArgumentException: LoggerFactory is not a Logback LoggerContext but Logback is on the classpath. Either remove Logback or the competing implementation (class org.apache.logging.slf4j.Log4jLoggerFactory loaded from jar:file:/C:/Users/Administrator/Desktop/springbootmongodbdemo-0.0.1-SNAPSHOT.jar!/BOOT-INF/lib/log4j-slf4j-impl-2.6.2.jar!/). If you are using WebLogic you will need to add ‘org.slf4j’ to prefer-application-packages in WEB-INF/weblogic.xml Object of class [org.apache.logging.slf4j.Log4jLoggerFactory]
说明:这是因为springboot本身就携带了日志jar包,与手动导入的maven依赖jar包产生冲突。解决办法:删除导入的日志org.apache.logging.slf4j jar包或者这样做:

org.springframework.boot
spring-boot-starter-web
1.3.3.RELEASE


org.springframework.boot
spring-boot-starter-logging


(10)打jar包并运行
1)打jar包

2)运行jar包
打开cmd,切换到jar所在的当前目录,输入java –jar jar名,运行程序,在浏览器的地址栏输入首页访问路径,无法访问jsp页面,原来默认情况下,springboot是不支持对webapp/WEB-INF/jsp打包的,我们查看打的jar包的META-INF:

发现在这个目录中没有任何jap文件。那么怎么办呢?我们在‘< build> ’标签中加入下面的标签即可:

 <resources>
        <!-- 打包时将jsp文件拷贝到META-INF目录下-->
        <resource>
            <!-- 指定resources插件处理哪个目录下的资源文件 -->
            <directory>src/main/webapp</directory>
            <!--注意此次必须要放在此目录下才能被访问到-->
            <targetPath>META-INF/resources</targetPath>
            <includes>
                <include>**/**</include>
            </includes>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/**</include>
            </includes>
            <filtering>false</filtering>
        </resource>
    </resources>

重新打包完成后就可以通过java -jar xxx.jar命令运行应用了。重新打完包的jsp存放的路径:

附录:
Springboot整合MongoDB完整的pom.xml文件如下所示。

<?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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.yzh.maven</groupId>
<artifactId>springbootmongodbdemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>springbootmongodbdemo</name>
<description>Demo project for Spring Boot</description>
<url>http://projects.spring.io/spring-boot/</url>
   <!-- 继承父包,此包会添加依赖,spring用到的核心包-->
   <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>1.4.0.RELEASE</version>
      <relativePath></relativePath>
   </parent>
   <properties>
      <tomcat.version>8.5.0</tomcat.version>
   </properties>
   <!-- spring-boot的web启动的jar包 -->
   <dependencies>
      <dependency>
         <groupId>org.apache.tomcat</groupId>
         <artifactId>tomcat-juli</artifactId>
         <version>${tomcat.version}</version>
      </dependency>
      <dependency>
         <groupId>org.apache.tomcat.embed</groupId>
         <artifactId>tomcat-embed-logging-juli</artifactId>
         <version>${tomcat.version}</version>
      </dependency>
      <!-- web  依赖 -->
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-web</artifactId>
      </dependency>

      <!-- servlet 依赖 -->
      <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>javax.servlet-api</artifactId>
         <scope>provided</scope>
      </dependency>
      <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>jstl</artifactId>
      </dependency>
      <!-- tomcat 的支持    .-->
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-tomcat</artifactId>
         <scope>provided</scope>
      </dependency>

      <dependency>
         <groupId>org.apache.tomcat.embed</groupId>
         <artifactId>tomcat-embed-jasper</artifactId>
      </dependency>

      <dependency>
         <groupId>commons-lang</groupId>
         <artifactId>commons-lang</artifactId>
         <version>2.6</version>
      </dependency>

      <!-- 集成mybatis -->
      <dependency>
         <groupId>org.mybatis.spring.boot</groupId>
         <artifactId>mybatis-spring-boot-starter</artifactId>
         <version>1.3.1</version>
      </dependency>

      <!--日志打印
      <dependency>
         <groupId>org.apache.logging.log4j</groupId>
         <artifactId>log4j-slf4j-impl</artifactId>
         <version>2.6.2</version>
      </dependency>   -->

      <!-- mybatis分页插件 -->
      <dependency>
         <groupId>com.github.pagehelper</groupId>
         <artifactId>pagehelper</artifactId>
         <version>4.1.6</version>
      </dependency>

      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-data-mongodb</artifactId>
      </dependency>

      <dependency>
         <groupId>javax.persistence</groupId>
         <artifactId>persistence-api</artifactId>
         <version>1.0.2</version>
      </dependency>

      <dependency>
         <groupId>org.apache.shiro</groupId>
         <artifactId>shiro-core</artifactId>
         <version>1.2.1</version>
      </dependency>
      <dependency>
         <groupId>org.apache.shiro</groupId>
         <artifactId>shiro-web</artifactId>
         <version>1.2.1</version>
      </dependency>
      <dependency>
         <groupId>org.apache.shiro</groupId>
         <artifactId>shiro-ehcache</artifactId>
         <version>1.2.1</version>
      </dependency>
      <dependency>
         <groupId>org.apache.shiro</groupId>
         <artifactId>shiro-spring</artifactId>
         <version>1.2.1</version>
      </dependency>

      <dependency>
         <groupId>org.codehaus.jackson</groupId>
         <artifactId>jackson-mapper-asl</artifactId>
         <version>1.9.13</version>
      </dependency>

      <dependency>
         <groupId>net.sf.json-lib</groupId>
         <artifactId>json-lib</artifactId>
         <version>2.2.1</version>
         <classifier>jdk15</classifier>
      </dependency>

      <dependency>
         <groupId>struts</groupId>
         <artifactId>struts</artifactId>
         <version>1.2.9</version>
         <exclusions>
         </exclusions>
      </dependency>

      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-test</artifactId>
         <scope>test</scope>
      </dependency>
   </dependencies>

   <!-- Package as an executable JAR -->
   <build>
      <plugins>
         <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
         </plugin>
      </plugins>

      <resources>
         <!-- 打包时将jsp文件拷贝到META-INF目录下-->
         <resource>
            <!-- 指定resources插件处理哪个目录下的资源文件 -->
            <directory>src/main/webapp</directory>
            <!--注意此次必须要放在此目录下才能被访问到-->
            <targetPath>META-INF/resources</targetPath>
            <includes>
               <include>**/**</include>
            </includes>
         </resource>
         <resource>
            <directory>src/main/resources</directory>
            <includes>
               <include>**/**</include>
            </includes>
            <filtering>false</filtering>
         </resource>
      </resources>

   </build>

   <!-- Allow access to Spring milestones and snapshots -->
   <!-- (you don't need this if you are using anything after 0.5.0.RELEASE) -->
   <repositories>
      <repository>
         <id>spring-snapshots</id>
         <url>http://repo.spring.io/snapshot</url>
         <snapshots>
            <enabled>true</enabled>
         </snapshots>
      </repository>
      <repository>
         <id>spring-milestones</id>
         <url>http://repo.spring.io/milestone</url>
         <snapshots>
            <enabled>true</enabled>
         </snapshots>
      </repository>
   </repositories>
   <pluginRepositories>
      <pluginRepository>
         <id>spring-snapshots</id>
         <url>http://repo.spring.io/snapshot</url>
      </pluginRepository>
      <pluginRepository>
         <id>spring-milestones</id>
         <url>http://repo.spring.io/milestone</url>
      </pluginRepository>
   </pluginRepositories>
</project>

猜你喜欢

转载自blog.csdn.net/yzh18373476791/article/details/82287982