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

歡迎訪問 生活随笔!

生活随笔

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

javascript

springboot 模块引用_Spring Boot(三):SpringBoot多模块(module)项目搭建

發布時間:2023/12/8 javascript 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springboot 模块引用_Spring Boot(三):SpringBoot多模块(module)项目搭建 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、前言

記錄在IDEA中怎么搭建SpringBoot多模塊(module)的過程,以一個交黨費的項目為例,多模塊的目錄結構如下:

dajia-dangfei-api:存放實體類和一些service層接口

dajia-dangfei-provider:存放dao層接口及其實現類和service的實現類

dajia-dangfei-consumer:存放controller層

dajia-dangfei-web:存放前端頁面等資源

二、搭建步驟

1、創建父工程

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

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

③ 填寫輸入框,點擊Next

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

⑤ 點擊Finish創建項目

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

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

2、創建子模塊

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

② 選擇Maven,點擊Next

③ 填寫ArifactId,點擊Next

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

⑤ 同理添加dajia-dangfei-provider、dajia-dangfei-consumer子模塊,項目目錄結構如下圖

⑥添加dajia-dangfei-web的directory

⑦最終的目錄結構如下

3、運行項目

① 在dajia-dangfei-consumer中創建com.dajia.income包,添加入口類ConsumerApplicationMain.java,并在income包下創建controller包放BillOrderController.java,目錄結構如下

ConsumerApplicationMain.java:

@SpringBootApplicationpublic classConsumerApplicationMain {public static voidmain(String[] args) {

SpringApplication.run(ConsumerApplicationMain.class,args);

}

}

因為要通過前端訪問BillOrderController中的方法,所以引入spring-boot-starter-web的jar包,在父工程的pom文件中定義,子模塊自然可以用到

父工程dajia-dangfei的pom文件:

4.0.0

pom

dajia-dangfei-api

dajia-dangfei-provider

dajia-dangfei-consumer

org.springframework.boot

spring-boot-starter-parent

2.1.4.RELEASE

com.dajia

dajia-dangfei

0.0.1-SNAPSHOT

dajia-dangfei

Demo project for Spring Boot

1.8

org.springframework.boot

spring-boot-starter

org.springframework.boot

spring-boot-starter-test

test

org.springframework.boot

spring-boot-maven-plugin

引入springboot starter web的jar包

org.springframework.boot

spring-boot-starter

org.springframework.boot

spring-boot-starter-test

test

org.springframework.boot

spring-boot-starter-web

②BillOrderController中添加測試方法

@RestController

@RequestMapping("/billOrder")public classBillOrderController {

@RequestMapping("/test")publicString test(){return "hello World!!!";

}

}

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

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

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

各個子模塊的依賴關系:dajia-dangfei-consumer依賴dajia-dangfei-provider,dajia-dangfei-provider依賴dajia-dangfei-api

①在dajia-dangfei-provider中的pom文件中添加dajia-dangfei-api依賴

dajia-dangfei-api

com.dajia

0.0.1-SNAPSHOT

②在dajia-dangfei-consumer中的pom文件中添加dajia-dangfei-provider依賴

dajia-dangfei-provider

com.dajia

0.0.1-SNAPSHOT

5、各模塊見得相互調用,從前端到數據庫

①dajia-dangfei-api中定義BillOrder實體類、BillOrderService接口

BillOrder.java

public class BillOrder implementsSerializable{private static final long serialVersionUID = -1764514095260116666L;/** 交費單ID

**/

privateString billOrderID;/** 交費單姓名

**/

privateString personName;/** 交費單證件號

**/

privateString idNumber;/** 應交金額

**/

privateBigDecimal payAmt;/** 交費單創建時間

**/

privateDate createTime;

}

BillOrderService.java

public interfaceBillOrderService {/*** 根據交費單ID查找對應的交費單

*@parambillOrderID

*@return

*/BillOrder getBillOrderByID(String billOrderID);

}

dajia-dangfei-api中的目錄結構如下

②dajia-dangfei-provider中定義billOrderServiceImpl實現類,dao層接口,數據庫連接

數據庫連接

父工程引入mybatis-spring-boot-starter和mysql-connector-java的jar包

mysql

mysql-connector-java

5.1.34

org.mybatis.spring.boot

mybatis-spring-boot-starter

1.1.1

resources下配置application.properties文件,主要配置兩部分。一個是數據庫的連接,一個是mybatis的mapper文件路徑

spring.datasource.url=jdbc:mysql://localhost:3306/databasezfy?useUnicode=true&characterEncoding=UTF-8&useSSL=false

spring.datasource.driverClassName=com.mysql.jdbc.Driver

spring.datasource.username=root

spring.datasource.password=123456mybatis.config-locations=mybatis/mybatis-config.xml

mybatis.mapper-locations=mybatis/mapper/*.xml

填寫billOrder-mapper.xml中對應的SQL語句

/p>

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

billOrderID,personName,idNumber,payAmt,createTime

SELECTFROM billOrder

WHERE billOrderID = #{billOrderID}

dao層接口,@Repository注解是為了在serviceImpl中可以同過@Autowired的方式注入BillOrderMapper

@Repositorypublic interfaceBillOrderMapper {/*** 根據交費單ID查找對應的交費單

*@parambillOrderID

*@return

*/BillOrder getBillOrderByBillOrderID(String billOrderID);

}

billOrderServiceImpl實現類,@Service注解是為了在controller中可以同過@Autowired的方式注入BillOrderService

@Servicepublic class BillOrderServiceImpl implementsBillOrderService{

@AutowiredprivateBillOrderMapper billOrderMapper;

@OverridepublicBillOrder getBillOrderByID(String billOrderID) {returnbillOrderMapper.getBillOrderByBillOrderID(billOrderID);

}

}

③dajia-dangfei-consumer中通過調用service中的方法實現查詢

@RestController

@RequestMapping("/billOrder")public classBillOrderController {

@AutowiredprivateBillOrderService billOrderService;

@RequestMapping("/getBillOrderByID")publicBillOrder getBillOrderByID(){return billOrderService.getBillOrderByID("1");

}

}

運行ConsumerApplicationMain類中的main方法啟動項目,會發現報錯

Description:

Field billOrderMapper in com.dajia.income.service.impl.BillOrderServiceImpl required a bean of type 'com.dajia.income.dao.BillOrderMapper' that could not be found.

The injection point has the following annotations:

- @org.springframework.beans.factory.annotation.Autowired(required=true)

Action:

Consider defining a bean of type 'com.dajia.income.dao.BillOrderMapper' in your configuration.

原因:@Repository注解是Spring的,Spring在掃描注解時,取消了掃描抽象類和接口,所以無法找到你用@reponsitory注解的dao接口。兩種方法解決:

一是用@Mapper注解替代@Repository注解,二是在啟動項目時指定要掃描的包,我們這里使用第二種

@SpringBootApplication

@MapperScan("com.dajia.income.dao")public classConsumerApplicationMain {public static voidmain(String[] args) {

SpringApplication.run(ConsumerApplicationMain.class,args);

}

}

重新啟動,訪問http://localhost:8080/billOrder/getBillOrderByID得到如下效果

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

總結

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

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