在以往javaweb開發的項目中,會為項目分層開發,一般我們會在一個功能中新建不同的package,然后把不同的類放在不同的package中,比如有dao、service、controller、web、util等等。如下圖:
image.png
但是這種項目往往會有弊端,比如一個web項目肯定會有一個后臺管理(此處我稱為:offline)。而前臺(此處我稱為:online)與offline肯定會有很多dao與service以及util是公用的。并且我們online打包war的時候,并不想把offline代碼也打包進去。并且項目越來越大,pom的管理也會變得復雜。所以就需要分層。建立一個如下圖的項目結構:
1、建立一個Maven的parent項目
image.png
image.png
image.png
刪除掉parent項目的src文件夾
image.png
最后生成的父項目如下圖:
image.png
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
image.png
新建web項目,點擊next
image.png
image.png
點擊finish后,生成如下圖結構:
image.png
依照web層,接下來生成service層、dao層、model層
image.png