日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringBoot+Mybatis多模块(module)项目搭建教程

發布時間:2025/3/20 javascript 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot+Mybatis多模块(module)项目搭建教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:楓本非凡

cnblogs.com/orzlin/p/9717399.html

編輯:Java知音

一、前言

最近公司項目準備開始重構,框架選定為SpringBoot+Mybatis,本篇主要記錄了在IDEA中搭建SpringBoot多模塊項目的過程。

1、開發工具及系統環境

  • IDE:IntelliJ IDEA 2018.2

  • 系統環境:mac OSX

2、項目目錄結構

  • biz層:業務邏輯層

  • dao層:數據持久層

  • web層:請求處理層

二、搭建步驟

1、創建父工程

① IDEA 工具欄選擇菜單 File -> New -> Project…

② 選擇Spring Initializr,Initializr默認選擇Default,點擊Next

③ 填寫輸入框,點擊Next

④ 這步不需要選擇直接點Next

⑤ 點擊Finish創建項目

⑥ 最終得到的項目目錄結構如下

⑦ 刪除無用的.mvn目錄、src目錄、mvnw及mvnw.cmd文件,最終只留.gitignore和pom.xml

2、創建子模塊

① 選擇項目根目錄beta右鍵呼出菜單,選擇New -> Module

② 選擇Maven,點擊Next

③ 填寫ArifactId,點擊Next

④ 修改Module name增加橫杠提升可讀性,點擊Finish

⑤ 同理添加【beta-dao】、【beta-web】子模塊,最終得到項目目錄結構如下圖

3、運行項目

① 在beta-web層創建com.yibao.beta.web包(注意:這是多層目錄結構并非單個目錄名,com >> yibao >> beta >> web)并添加入口類BetaWebApplication.java

package?com.yibao.beta.web; import?org.springframework.boot.SpringApplication; import?org.springframework.boot.autoconfigure.SpringBootApplication;/***?@author?linjian*?@date?2018/9/29*/ @SpringBootApplication public?class?BetaWebApplication?{public?static?void?main(String[]?args)?{SpringApplication.run(BetaWebApplication.class,?args);} }

② 在com.yibao.beta.web包中添加controller目錄并新建一個controller,添加test方法測試接口是否可以正常訪問

package?com.yibao.beta.web.controller;import?org.springframework.web.bind.annotation.GetMapping; import?org.springframework.web.bind.annotation.RequestMapping; import?org.springframework.web.bind.annotation.RestController;/***?@author?linjian*?@date?2018/9/29*/ @RestController @RequestMapping("demo") public?class?DemoController?{@GetMapping("test")public?String?test()?{return?"Hello?World!";} }

③ 運行BetaWebApplication類中的main方法啟動項目,默認端口為8080,訪問http://localhost:8080/demo/test得到如下效果

以上雖然項目能正常啟動,但是模塊間的依賴關系卻還未添加,下面繼續完善

4、配置模塊間的依賴關系

各個子模塊的依賴關系:biz層依賴dao層,web層依賴biz層

① 父pom文件中聲明所有子模塊依賴(dependencyManagement及dependencies的區別自行查閱文檔)

<dependencyManagement><dependencies><dependency><groupId>com.yibao.beta</groupId><artifactId>beta-biz</artifactId><version>${beta.version}</version></dependency><dependency><groupId>com.yibao.beta</groupId><artifactId>beta-dao</artifactId><version>${beta.version}</version></dependency><dependency><groupId>com.yibao.beta</groupId><artifactId>beta-web</artifactId><version>${beta.version}</version></dependency></dependencies> </dependencyManagement>

其中${beta.version}定義在properties標簽中

② 在beta-web層中的pom文件中添加beta-biz依賴

<dependencies><dependency><groupId>com.yibao.beta</groupId><artifactId>beta-biz</artifactId></dependency> </dependencies>

③ 在beta-biz層中的pom文件中添加beta-dao依賴

<dependencies><dependency><groupId>com.yibao.beta</groupId><artifactId>beta-dao</artifactId></dependency> </dependencies>

5、web層調用biz層接口測試

① 在beta-biz層創建com.yibao.beta.biz包,添加service目錄并在其中創建DemoService接口類

package?com.yibao.beta.biz.service;/***?@author?linjian*?@date?2018/9/29*/ public?interface?DemoService?{String?test(); } package?com.yibao.beta.biz.service.impl;import?com.yibao.beta.biz.service.DemoService; import?org.springframework.stereotype.Service;/***?@author?linjian*?@date?2018/9/29*/ @Service public?class?DemoServiceImpl?implements?DemoService?{@Overridepublic?String?test()?{return?"test";} }

② DemoController通過@Autowired注解注入DemoService,修改DemoController的test方法使之調用DemoService的test方法,最終如下所示

package?com.yibao.beta.web.controller;import?com.yibao.beta.biz.service.DemoService; import?org.springframework.beans.factory.annotation.Autowired; import?org.springframework.web.bind.annotation.GetMapping; import?org.springframework.web.bind.annotation.RequestMapping; import?org.springframework.web.bind.annotation.RestController;/***?@author?linjian*?@date?2018/9/29*/ @RestController @RequestMapping("demo") public?class?DemoController?{@Autowiredprivate?DemoService?demoService;@GetMapping("test")public?String?test()?{return?demoService.test();} }

③ 再次運行BetaWebApplication類中的main方法啟動項目,發現如下報錯

*************************** APPLICATION?FAILED?TO?START ***************************Description:Field?demoService?in?com.yibao.beta.web.controller.DemoController?required?a?bean?of?type?'com.yibao.beta.biz.service.DemoService'?that?could?not?be?found.Action:Consider?defining?a?bean?of?type?'com.yibao.beta.biz.service.DemoService'?in?your?configuration.

原因是找不到DemoService類,此時需要在BetaWebApplication入口類中增加包掃描,設置@SpringBootApplication注解中的scanBasePackages值為com.yibao.beta,最終如下所示

package?com.yibao.beta.web;import?org.mybatis.spring.annotation.MapperScan; import?org.springframework.boot.SpringApplication; import?org.springframework.boot.autoconfigure.SpringBootApplication;/***?@author?linjian*?@date?2018/9/29*/ @SpringBootApplication(scanBasePackages?=?"com.yibao.beta") @MapperScan("com.yibao.beta.dao.mapper") public?class?BetaWebApplication?{public?static?void?main(String[]?args)?{SpringApplication.run(BetaWebApplication.class,?args);} }

設置完后重新運行main方法,項目正常啟動,訪問http://localhost:8080/demo/test得到如下效果

6、集成Mybatis

① 父pom文件中聲明mybatis-spring-boot-starter及lombok依賴

dependencyManagement><dependencies><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.2</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.16.22</version></dependency></dependencies> </dependencyManagement>

② 在beta-dao層中的pom文件中添加上述依賴

<dependencies><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency> </dependencies>

③ 在beta-dao層創建com.yibao.beta.dao包,通過mybatis-genertaor工具生成dao層相關文件(DO、Mapper、xml),存放目錄如下

④ applicatio.properties文件添加jdbc及mybatis相應配置項

spring.datasource.driverClassName?=?com.mysql.jdbc.Driver spring.datasource.url?=?jdbc:mysql://192.168.1.1/test?useUnicode=true&characterEncoding=utf-8 spring.datasource.username?=?test spring.datasource.password?=?123456mybatis.mapper-locations?=?classpath:mybatis/*.xml mybatis.type-aliases-package?=?com.yibao.beta.dao.entity

⑤ DemoService通過@Autowired注解注入UserMapper,修改DemoService的test方法使之調用UserMapper的selectByPrimaryKey方法,最終如下所示

package?com.yibao.beta.biz.service.impl;import?com.yibao.beta.biz.service.DemoService; import?com.yibao.beta.dao.entity.UserDO; import?com.yibao.beta.dao.mapper.UserMapper; import?org.springframework.beans.factory.annotation.Autowired; import?org.springframework.stereotype.Service;/***?@author?linjian*?@date?2018/9/29*/ @Service public?class?DemoServiceImpl?implements?DemoService?{@Autowiredprivate?UserMapper?userMapper;@Overridepublic?String?test()?{UserDO?user?=?userMapper.selectByPrimaryKey(1);return?user.toString();} }

⑥ 再次運行BetaWebApplication類中的main方法啟動項目,發現如下報錯

APPLICATION?FAILED?TO?START ***************************Description:Field?userMapper?in?com.yibao.beta.biz.service.impl.DemoServiceImpl?required?a?bean?of?type?'com.yibao.beta.dao.mapper.UserMapper'?that?could?not?be?found.Action:Consider?defining?a?bean?of?type?'com.yibao.beta.dao.mapper.UserMapper'?in?your?configuration.

原因是找不到UserMapper類,此時需要在BetaWebApplication入口類中增加dao層包掃描,添加@MapperScan注解并設置其值為com.yibao.beta.dao.mapper,最終如下所示

package?com.yibao.beta.web;import?org.mybatis.spring.annotation.MapperScan; import?org.springframework.boot.SpringApplication; import?org.springframework.boot.autoconfigure.SpringBootApplication;/***?@author?linjian*?@date?2018/9/29*/ @SpringBootApplication(scanBasePackages?=?"com.yibao.beta") @MapperScan("com.yibao.beta.dao.mapper") public?class?BetaWebApplication?{public?static?void?main(String[]?args)?{SpringApplication.run(BetaWebApplication.class,?args);} }

設置完后重新運行main方法,項目正常啟動,訪問http://localhost:8080/demo/test得到如下效果

至此,一個簡單的SpringBoot+Mybatis多模塊項目已經搭建完畢,我們也通過啟動項目調用接口驗證其正確性。

四、總結

一個層次分明的多模塊工程結構不僅方便維護,而且有利于后續微服務化。在此結構的基礎上還可以擴展common層(公共組件)、server層(如dubbo對外提供的服務)

此為項目重構的第一步,后續還會的框架中集成logback、disconf、redis、dubbo等組件

五、未提到的坑

在搭建過程中還遇到一個maven私服的問題,原因是公司內部的maven私服配置的中央倉庫為阿里的遠程倉庫,它與maven自帶的遠程倉庫相比有些jar包版本并不全,導致在搭建過程中好幾次因為沒拉到相應jar包導致項目啟動不了。

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的SpringBoot+Mybatis多模块(module)项目搭建教程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩欧美精品在线观看 | 日本精品网站 | 午夜寂寞影院在线观看 | 精品婷婷 | 91丨porny丨中文 | av日韩国产 | 高级毛片 | 精久久久久久久 | 老头老太做爰xxx视频 | 国产高清黄色 | av色先锋 | 欧美大胆a视频 | 一级国产黄色片 | 九九九九精品 | 欧美成人免费视频 | 亚洲经典在线观看 | 春色激情 | 亚洲福利视频在线 | 国产欧美在线精品日韩 | 成人av电影天堂 | 琪琪色网 | 亚洲第一伊人 | 精品人妻伦一区二区三区久久 | 欧美xxxx黑人 | 噼里啪啦免费高清看 | 亚洲综合色视频 | 九九热免费精品视频 | 中文字幕一区二区三区四区不卡 | av电影在线播放 | 天天干少妇 | 久草a在线 | 性折磨bdsm欧美激情另类 | 黄色高潮| 国产97在线观看 | 日韩av一区二区三区 | 国产香蕉97碰碰碰视频在线观看 | 日本三级韩国三级美三级91 | 欧美日韩午夜激情 | 亚洲成人黄色小说 | www.av小说 | 中文字幕精品一区二区精 | 999热视频 | 日本一本高清 | 精品久久一区二区三区 | 青青青青在线 | 黄片毛片在线观看 | 欧美性受xxxx黑人xyx性 | 又黄又色又爽 | 亚洲最大在线 | 东京热一区二区三区四区 | av在线天天 | 色校园 | 亚洲成人一二三区 | 女同一区二区三区 | 韩日精品在线 | 日日躁夜夜躁狠狠久久av | 视频在线观看免费大片 | 亚洲国产成人av | 国内露脸中年夫妇交换 | www国产黄色 | www日韩在线| 日本福利视频一区 | 自拍偷在线精品自拍偷无码专区 | 桃谷绘里香在线播放 | 日本午夜网站 | 国产91在线精品 | 亚洲人成久久 | 国产jjizz一区二区三区视频 | 国产中文字字幕乱码无限 | 美女的奶胸大爽爽大片 | 成人免费网站在线 | 欧美三p| 日韩制服诱惑 | 国产人妻精品午夜福利免费 | 欧美精品性视频 | 四虎国产精品成人免费入口 | 欧美日韩中文字幕在线视频 | 国产不卡av在线 | 精品视频日韩 | 在线观看免费高清视频 | 久久久久久久久久久免费 | 欧美一级高清片 | 涩涩资源站 | 天天噜天天干 | 91成人小视频 | www.色99| 久久韩国 | 在线观看黄网站 | 国产综合精品 | 色哟哟免费 | 免费人成在线观看视频播放 | 福利网站在线观看 | 免费v片在线观看 | 日韩aaaaaa | 欧美激情视频一区 | 日韩夫妻性生活 | 九九九九色 | 亚洲欧洲综合av | 久久r这里只有精品 |