Maven 搭建spring boot多模組專案
備註:所有專案都在idea中建立
1.idea建立maven專案
-
1-1: 刪除
src
,target
目錄,只保留pom.xml
-
1-2: 根目錄
pom.xml
可被子模組繼承,因此專案只是demo,未考慮太多效能問題,所以將諸多依賴都寫在根級`pom.xml`,子模組只需繼承就可以使用。
-
1-3: 根級
pom.xml
檔案在附錄1 -
1-4: 依賴模組 mybatis spring-boot相關模組
2.建立子模組(module)
-
2-1:
file > new > module
輸入model
-
2-2:
file > new > module
輸入dao
-
2-3:
file > new > module
輸入service
-
2-4:
file > new > module
輸入webapi
3.修改子模組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">
<parent>
<artifactId>parent</artifactId>
<groupId>com.luyh.projectv1</groupId>
<version>1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>projectv1-model</artifactId>
</project>
注意:<font color=”red”><relativePath>../pom.xml</relativePath>
</font>此段必須加上,用來繼承父模組
至此,專案的基礎結構搭建完畢了,接下來可以來擼程式碼了,哦哦稍等,我先介紹下各個子module的工作職責吧
4.子模組在專案中擔任的`工作職責`
-
model
此模組存放著所有的實體類 -
dao
此模組存放著資料互動的具體實現,供service呼叫 -
service
此模組存放業務程式碼實現,供API層呼叫 -
webapi
此模組也可以不出現在專案中,為了寫demo故將webapi層放進來
5.model
層實體類編寫
-
建立包名
com.luyh.projectv1.model
-
建實體類
Member.java
具體程式碼請clone我的git,git地址在最下方
6.dao
層資料庫操作層
-
建立com.luyh.projectv1.dao.config,該包內只有2個讓spring boot自動載入配置的配置java類
-
建立MemberMapper.java 具體內容看程式碼
-
在resources/mybatis 下建立MemberMapper.xml
-
建立IMember.java
-
建立Member.java 實現Imember介面
-
建立resources/application.properties檔案用於配置資料庫連線
7. service
編寫業務邏輯
-
建立
com.luyh.projectv1.service
包 -
建立IMemberService.java介面
-
建立MemberService.java實現類
-
MemberService.java 類中自動注入DaoMember 並呼叫其方法獲取資料
8. webapi
編寫webapi獲取json資料
-
建立Application.java 啟動應用
-
建立
com.luyh.projectv1.webapi.controller.MemberController.java
寫個rest風格Controller -
啟動
9.sql檔案 請自行匯入mysql資料 sql檔案
附錄1
<?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.luyh.projectv1</groupId>
<artifactId>parent</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.3.RELEASE</version>
</parent>
<modules>
<module>model</module>
<module>dao</module>
<module>service</module>
<module>webapi</module>
</modules>
<!--申明依賴關係-->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.2</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.8</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
<!--設定maven倉庫-->
<repositories>
<repository>
<id>spring-releases</id>
<url>https://repo.spring.io/libs-release</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-releases</id>
<url>https://repo.spring.io/libs-release</url>
</pluginRepository>
</pluginRepositories>
</project>