在以往javaweb开发的项目中,会为项目分层开发,一般我们会在一个功能中新建不同的package,然后把不同的类放在不同的package中,比如有dao、service、controller、web、util等等。如下图:
但是这种项目往往会有弊端,比如一个web项目肯定会有一个后台管理(此处我称为:offline)。而前台(此处我称为:online)与offline肯定会有很多dao与service以及util是公用的。并且我们online打包war的时候,并不想把offline代码也打包进去。并且项目越来越大,pom的管理也会变得复杂。所以就需要分层。建立一个如下图的项目结构:
1、建立一个Maven的parent项目
删除掉parent项目的src文件夹
最后生成的父项目如下图:
2、配置parent项目pom文件,一些公共的依赖可以放在这个项目里面。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 移除内嵌的tomcat运行容器 -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>${scope.jar}</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
3、新建module子项目,比如为online项目新建一个web、一个service、一个model、一个dao
新建web项目,点击next
点击finish后,生成如下图结构:
依照web层,接下来生成service层、dao层、model层