1.7 工程測試 通過一個案例”根據Id查詢商戶“的開發去熟悉項目架構的基本開發方法。 1.7.1生成代碼 使用mp的自動生成工程生成entity、mapper等文件。 1)修改生成類中的數據庫鏈接,連接
1.7 工程測試
通過一個案例”根據Id查詢商戶“的開發去熟悉項目架構的基本開發方法。
1.7.1生成代碼
使用mp的自動生成工程生成entity、mapper等文件。
1)修改生成類中的數據庫鏈接,連接huiminpay_merchant_service數據庫
2)設置包路徑
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent("com.huiminpay");
3)運行生成類,輸入模塊名:merchant
生成成功:
將生成的entity、mapper拷貝到huiminpay-merchant-service工程
1.7.2Mybatis-Plus配置
1.7.2.1配置連接池Druid
- 在nacos中新建連接池Druid配置:spring-boot-starter-druid.yaml,Group為:COMMON_GROUP
內容如下:
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/oauth?useUnicode=true
username: root
password: yourpassword
druid:
initial-size: 5
min-idle: 5
max-active: 20
max-wait: 60000
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
validation-query: SELECT 1 FROM DUAL
test-while-idle: true
test-on-borrow: true
test-on-return: false
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 20
filter:
stat:
slow-sql-millis: 1
log-slow-sql: true
filters: config,stat,wall,log4j2
web-stat-filter:
enabled: true
url-pattern: /*
exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
session-stat-enable: false
session-stat-max-count: 1000
principal-cookie-name: admin
principal-session-name: admin
profile-enable: true
stat-view-servlet:
enabled: true
url-pattern: /druid/*
allow: 127.0.0.1
deny: 127.0.0.1
reset-enable: false
login-password: admin
login-username: admin
aop-patterns: com.huiminpay.*.service.*
- 商戶服務覆蓋部分配置(數據庫名和用戶名密碼):merchant-service.yaml
# 覆蓋spring‐boot‐starter‐druid.yaml的項目
spring:
datasource:
druid:
url: jdbc:mysql://127.0.0.1:3306/huiminpay_merchant_service?useUnicode=true&characterEncoding=UTF8&serverTimezone=Asia/Shanghai&useSSL=false
username: root
password: yourpassword
- 應用配置到項目中:bootstrap.yml
- refresh: true
data-id: spring-boot-starter-druid.yaml # spring boot starter druid配置
group: COMMON_GROUP # 通用配置組
1.7.2.2配置Mybatis-Plus
- 在nacos中添加配置:spring-boot-mybatis-plus.yaml,Group為:COMMON_GROUP
mybatis-plus:
configuration:
cache-enabled: false
map-underscore-to-camel-case: true
global-config:
id-type: 0
field-strategy: 0
db-column-underline: true
refresh-mapper: true
typeAliasesPackage: com.huiminpay.user.entity
mapper-locations: classpath:com/huimin/*/mapper/*.xml
- 商戶服務覆蓋部分Mybatis-Plus配置:merchant-service.yaml
mybatis-plus:
typeAliasesPackage: com.huiminpay.merchant.entity
mapper-locations: classpath:com/huiminpay/*/mapper/*.xml
- 應用配置到項目中:bootstrap.yml
- refresh: true
data-id: spring-boot-mybatis-plus.yaml # spring boot mybatisplus配置
group: COMMON_GROUP # 通用配置組
- 添加分頁和性能分析插件:MybatisPlusCon?g
package com.huiminpay.merchant.config;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @author Administrator
* @version 1.0
**/
@Configuration
@MapperScan("com.huiminpay.**.mapper")
public class MybatisPlusConfig {
/**
* 分頁插件,自動識別數據庫類型
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
/**
* 啟用性能分析插件
*/
@Bean
public PerformanceInterceptor performanceInterceptor(){
return new PerformanceInterceptor();
}
}
1.7.3創建接口
在huiminpay-merchant-api下新建商戶接口:MerchantService
package com.huiminpay.merchant.api;
import com.huiminpay.merchant.api.dto.MerchantDTO;
public interface IMerchantService{
/**
* 根據ID查詢商戶信息
* @param merchantId
* @return
*/
MerchantDTO queryMerchantById(Long merchantId);
}
注意:DTO類型的對象作為service層傳輸的對象。
dto:表示的是 vo和entity的一個中間轉換對象,是vo或entity對象中屬性的一個子對象。當前端傳來vo數據,我們提取vo中的數據到dto中,再將dto的數據處理后全部移動到entity中進行數據的保存。反之亦然
在huiminpay-merchant-api工程 定義MerchantDTO
package com.huiminpay.merchant.dto;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@ApiModel("商戶基本信息")
@Data
public class MerchantDTO implements Serializable {
/**
* 主鍵
*/
// @JsonSerialize(using = ToStringSerializer.class)
private Long id;
/**
* 商戶名稱
*/
@ApiModelProperty(name = "merchantName",value = "商戶名稱",example = "黃燜雞")
private String merchantName;
/**
* 企業編號
*/
@ApiModelProperty(name = "merchantNo",value = "企業編號",example = "10000")
private String merchantNo;
/**
* 企業地址
*/
private String merchantAddress;
/**
* 商戶類型
*/
private String merchantType;
/**
* 營業執照(企業證明)
*/
private String businessLicensesImg;
/**
* 法人身份證正面照片
*/
private String idCardFrontImg;
/**
* 法人身份證反面照片
*/
private String idCardAfterImg;
/**
* 聯系人姓名
*/
private String username;
/**
* 聯系人手機號(關聯統一賬號)
*/
private String mobile;
/**
* 聯系人地址
*/
private String contactsAddress;
/**
* 審核狀態 0-未申請,1-已申請待審核,2-審核通過,3-審核拒絕
*/
private String auditStatus;
/**
* 租戶ID,關聯統一用戶
*/
private Long tenantId;
private String password;
}
@ApiModel和 @ApiModelProperty是Swagger注解后邊會學習。
實現類:
package com.huiminpay.merchant.service;
import com.huiminpay.merchant.entity.Merchant;
import com.huiminpay.merchant.mapper.MerchantMapper;
import com.yh.merchant.api.IMerchantService;
import com.yh.merchant.api.dto.MerchantDTO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
/**
* <p>
* 服務實現類
* </p>
*
* @author suozhenhua
* @since 2021-03-15
*/
@Slf4j
@org.apache.dubbo.config.annotation.Service
public class MerchantServiceImpl implements IMerchantService {
@Autowired
MerchantMapper merchantMapper;
@Override
public MerchantDTO queryMerchantById(Long merchantId) {
Merchant merchant = merchantMapper.selectById(merchantId);
MerchantDTO merchantDTO = new MerchantDTO();
BeanUtils.copyProperties(merchant,merchantDTO);
return merchantDTO;
}
}
1.7.4創建接口實現
在huiminpay-merchant-service下新建商戶接口實現類:MerchantServiceImpl,并添加新建商戶測試方法 本方法從huiminpay_merchant_service數據庫的merchant表查詢數據。
public MerchantDTO queryMerchantById(Long merchantId) {
Merchant merchant = merchantMapper.selectById(merchantId);
MerchantDTO merchantDTO = new MerchantDTO();
BeanUtils.copyProperties(merchant,merchantDTO);
return merchantDTO;
}
1.7.5應用層
在huiminpay-merchant-application下添加如下pom依賴:
<dependency>
<groupId>com.huiminpay</groupId>
<artifactId>huiminpay-merchant-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
在huiminpay-merchant-application下新建商戶Controller:MerchantController,并調用商戶中心服務提供的新 建商戶接口
package com.huiminpay.merchant.controller;
import com.yh.merchant.api.IMerchantService;
import com.yh.merchant.api.dto.MerchantDTO;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MerchantController {
@Reference
IMerchantService merchantService;
@GetMapping("/merchants/{id}")
public MerchantDTO queryMerchantById(@PathVariable("id") Long id) {
MerchantDTO merchantDTO = merchantService.queryMerchantById(id);
return merchantDTO;
}
}
- 啟動商戶平臺應用和商戶服務
- 訪問 http://localhost:57010/merchant/merchants/具體的id值 測試查詢商戶
【本文由:香港云服務器 http://www.558idc.com/ne.html 復制請保留原URL】如果merchant表沒有數據可手動添加后再行測試。
聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。