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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

聚合支付项目(一)

發(fā)布時(shí)間:2024/1/8 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 聚合支付项目(一) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、基本環(huán)境搭建

這里使用jdk8+maven3.6+mysql5.5

1、創(chuàng)建基本工程:

其中common公共模塊pom文件導(dǎo)入如下:

<?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>shanjupay</artifactId><groupId>com.shanjupay</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>shanjupay-common</artifactId><dependencies><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><scope>provided</scope></dependency><dependency><groupId>commons-lang</groupId><artifactId>commons-lang</artifactId></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><skip>true</skip><finalName>${project.name}</finalName></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target><compilerArguments><bootclasspath>${java.home}/lib/rt.jar;${java.home}/lib/jce.jar</bootclasspath></compilerArguments></configuration></plugin></plugins></build> </project>

項(xiàng)目父模塊pom文件如下:

<?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.shanjupay</groupId><artifactId>shanjupay</artifactId><packaging>pom</packaging><version>1.0-SNAPSHOT</version><modules><module>shanjupay-common</module></modules><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.3.RELEASE</version></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><org.projectlombok.version>1.18.0</org.projectlombok.version><org.mapstruct.version>1.3.0.Final</org.mapstruct.version></properties><dependencyManagement><dependencies><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2.1.0.RELEASE</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Greenwich.RELEASE</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</version></dependency><dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-jwt</artifactId><version>1.0.9.RELEASE</version></dependency><dependency><groupId>org.springframework.security.oauth.boot</groupId><artifactId>spring-security-oauth2-autoconfigure</artifactId><version>2.1.3.RELEASE</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${org.projectlombok.version}</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.16</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.11</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.1.0</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-extension</artifactId><version>3.1.0</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.1.0</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-typehandlers-jsr310</artifactId><version>1.0.2</version></dependency><dependency><groupId>commons-lang</groupId><artifactId>commons-lang</artifactId><version>2.6</version></dependency><dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct-jdk8</artifactId><version>${org.mapstruct.version}</version></dependency><dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>25.0-jre</version></dependency><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.2</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.47</version></dependency><dependency><groupId>org.apache.shardingsphere</groupId><artifactId>sharding-jdbc-spring-boot-starter</artifactId><version>4.0.0-RC1</version></dependency><dependency><groupId>com.alipay.sdk</groupId><artifactId>alipay-sdk-java</artifactId><version>3.7.73.ALL</version></dependency><dependency><groupId>com.github.tedzhdz</groupId><artifactId>wxpay-sdk</artifactId><version>3.0.10</version></dependency><dependency><groupId>com.github.binarywang</groupId><artifactId>weixin-java-pay</artifactId><version>3.4.0</version></dependency><dependency><groupId>com.qiniu</groupId><artifactId>qiniu-java-sdk</artifactId><version>7.2.25</version></dependency><dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>3.9.1</version></dependency><dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>2.0.2</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId><version>2.1.3.RELEASE</version></dependency></dependencies> </dependencyManagement><build><finalName>${project.name}</finalName><resources><resource><directory>src/main/resources</directory><filtering>true</filtering><includes><include>**/*</include></includes></resource><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource></resources><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target></configuration></plugin><plugin><artifactId>maven-resources-plugin</artifactId><configuration><encoding>utf-8</encoding><useDefaultDelimiters>true</useDefaultDelimiters></configuration></plugin></plugins></build></project>

安裝lombok插件

二、搭建商戶平臺(tái)模塊:
?

搭建以下幾個(gè)服務(wù):

這里說明下三者的關(guān)系

提供外部訪問接口(controller):shanjupay-merchant-application

暴露給shanjupay-merchant-application調(diào)用的service層:shanjupay-merchant-api

真正的去實(shí)現(xiàn)業(yè)務(wù)邏輯(serviceImpl+dao+entity):shanjupay-merchant-service

controller層通過dubbo去調(diào)用service的接口(service的實(shí)現(xiàn)就不會(huì)暴露)

數(shù)據(jù)庫導(dǎo)入

搭建上面的三個(gè)服務(wù):

1、shanjupay-merchant-application
pom文件:

<?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>shanjupay</artifactId><groupId>com.shanjupay</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>shanjupay-merchant-application</artifactId><dependencies><!--阿里大于短信--><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.5.3</version></dependency><dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId></dependency><dependency><groupId>com.shanjupay</groupId><artifactId>shanjupay-common</artifactId><version>1.0-SNAPSHOT</version></dependency><dependency><groupId>com.shanjupay</groupId><artifactId>shanjupay-merchant-api</artifactId><version>1.0-SNAPSHOT</version></dependency><!--Nacos配置中心--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-config</artifactId></dependency><!--Nacos注冊(cè)中心--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!--Dubbo啟動(dòng)器--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-dubbo</artifactId></dependency><!--web啟動(dòng)器--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--springboot啟動(dòng)器,排除自帶的logging依賴(使用自己的log4j4啟動(dòng)器依賴)--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring‐boot‐startee</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion></exclusions></dependency><!--log4j4啟動(dòng)器--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring‐boot‐starter‐log4j2</artifactId></dependency><!--注釋處理器--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring‐boot‐configuration‐processor</artifactId></dependency><!--健康檢查--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring‐boot‐starter‐actuator</artifactId></dependency><!--測(cè)試啟動(dòng)器--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring‐boot‐starter‐test</artifactId></dependency></dependencies></project>

bootstrap.yml文件(bootstrap.yml配置比application.yml先加載)

server:port: 57010 #啟動(dòng)端口 命令行注入max-http-header-size: 100KBnacos:server:addr: 127.0.0.1:8848spring:application:name: merchant-applicationmain:allow-bean-definition-overriding: true # Spring Boot 2.1 需要設(shè)定cloud:nacos:discovery:server-addr: ${nacos.server.addr} #調(diào)用上面的nacos地址namespace: eeaa8bff-98c3-4222-ae95-dd92275ec758 #命名空間cluster-name: DEFAULTconfig:server-addr: ${nacos.server.addr} # 配置中心地址file-extension: yamlnamespace: eeaa8bff-98c3-4222-ae95-dd92275ec758 # 命令行注入group: SHANJUPAY_GROUP # 聚合支付業(yè)務(wù)組ext-config:-refresh: truedata-id: spring-boot-http.yaml # spring boot http配置group: COMMON_GROUP # 通用配置組#SpringMVC上傳文件配置servlet:multipart:#默認(rèn)支持文件上傳.enabled: true#支持文件寫入磁盤.file-size-threshold: 0# 上傳文件的臨時(shí)目錄location:# 最大支持文件大小max-file-size: 1MB# 最大支持請(qǐng)求大小max-request-size: 30MBdubbo:scan:# dubbo 服務(wù)掃描基準(zhǔn)包base-packages: com.shanjupayprotocol:# dubbo 協(xié)議name: dubboport: 20891registry:address: nacos://127.0.0.1:8848application:qos:port: 22310 # dubbo qos端口配置 命令行注入consumer:check: falsetimeout: 3000retries: -1logging:config:classpath: log4j2.xml #日志記錄地址

在Nacos中添加spring-boot-http.yaml配置,Group:COMMON_GROUP 這里統(tǒng)一使用dev命名空間

在resources目錄下添加log4j2配置文件:log4j2.xml log4j2是log4j的改進(jìn)版本,性能比log4j要高,通常日志配置文件在開發(fā)可以調(diào)整日志級(jí)別,輸出詳細(xì)的日志 來跟蹤程序的執(zhí)行。

<?xml version="1.0" encoding="UTF-8"?> <Configuration monitorInterval="180" packages=""><properties><property name="prjname">${project.name}</property><property name="logdir">logs</property><property name="PATTERN">[${project.name}][${env:SERVER_PORT}] %date{YYYY-MM-dd HH:mm:ss,SSS} %highlight{%level} [%thread][%file:%line] - %msg%n%throwable</property></properties><Appenders><Console name="Console" target="SYSTEM_OUT"><PatternLayout pattern="${PATTERN}"/></Console><RollingFile name="ErrorAppender" fileName="${logdir}/${prjname}_error.log"filePattern="${logdir}/$${date:yyyy-MM-dd}/${prjname}_error.%d{yyyy-MM-dd-HH}.log" append="true"><PatternLayout pattern="${PATTERN}"/><ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/><Policies><TimeBasedTriggeringPolicy interval="1" modulate="true" /></Policies></RollingFile><RollingFile name="DebugAppender" fileName="${logdir}/${prjname}_info.log"filePattern="${logdir}/$${date:yyyy-MM-dd}/${prjname}_info.%d{yyyy-MM-dd-HH}.log" append="true"><PatternLayout pattern="${PATTERN}"/><ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/><Policies><TimeBasedTriggeringPolicy interval="1" modulate="true" /></Policies></RollingFile><!--異步appender--><Async name="AsyncAppender" includeLocation="true"><AppenderRef ref="ErrorAppender"/><AppenderRef ref="DebugAppender"/></Async></Appenders><Loggers><!--過濾掉spring和mybatis的一些無用的debug信息--><logger name="org.springframework" level="INFO"></logger><logger name="org.mybatis" level="INFO"></logger><logger name="springfox" level="INFO"></logger><logger name="org.apache.http" level="INFO"></logger><logger name="com.alibaba.nacos" level="WARN"></logger><!--OFF 0--><!--FATAL 100--><!--ERROR 200--><!--WARN 300--><!--INFO 400--><!--DEBUG 500--><!--TRACE 600--><!--ALL Integer.MAX_VALUE--><Root level="INFO" includeLocation="true"><AppenderRef ref="AsyncAppender"/><AppenderRef ref="Console"/></Root></Loggers> </Configuration>

2、shanjupay-merchant (里面包含service、api兩個(gè)模塊)

2.1、shanjupay-merchant-api模塊:

pom文件:

<?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>shanjupay-merchant</artifactId><groupId>com.shanjupay</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>shanjupay-merchant-api</artifactId><dependencies><dependency><groupId>com.shanjupay</groupId><artifactId>shanjupay-common</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies></project>

2.2、service模塊

pom文件:

<?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>shanjupay-merchant</artifactId><groupId>com.shanjupay</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>shanjupay-merchant-service</artifactId><dependencies><dependency><groupId>com.shanjupay</groupId><artifactId>shanjupay-merchant-api</artifactId><version>1.0-SNAPSHOT</version></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-dubbo</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-typehandlers-jsr310</artifactId></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j2</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- 對(duì)象池 --><dependency><groupId>org.apache.commons</groupId><artifactId>commons-pool2</artifactId></dependency><dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct-jdk8</artifactId></dependency><dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct-processor</artifactId><version>${org.mapstruct.version}</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${org.projectlombok.version}</version></dependency></dependencies></project>

加上上面的log4j2.xml

bootstrap.yml文件:

server:port: 56040 #啟動(dòng)端口 命令行注入max-http-header-size: 100KBnacos:server:addr: 127.0.0.1:8848spring:application:name: merchant-servicemain:allow-bean-definition-overriding: true # Spring Boot 2.1 需要設(shè)定cloud:nacos:discovery:server-addr: ${nacos.server.addr}namespace: eeaa8bff-98c3-4222-ae95-dd92275ec758cluster-name: DEFAULTconfig:server-addr: ${nacos.server.addr} # 配置中心地址file-extension: yamlnamespace: eeaa8bff-98c3-4222-ae95-dd92275ec758 # 命令行注入group: SHANJUPAY_GROUP # 聚合支付業(yè)務(wù)組ext-config:-refresh: truedata-id: spring-boot-http.yaml # spring boot http配置group: COMMON_GROUP # 通用配置組-refresh: truedata-id: spring-boot-starter-druid.yaml # spring boot starter druid配置group: COMMON_GROUP # 通用配置組-refresh: truedata-id: spring-boot-mybatis-plus.yaml # spring boot mybatisplus配置group: COMMON_GROUP # 通用配置組#SpringMVC上傳文件配置servlet:multipart:#默認(rèn)支持文件上傳.enabled: true#支持文件寫入磁盤.file-size-threshold: 0# 上傳文件的臨時(shí)目錄location:# 最大支持文件大小max-file-size: 1MB# 最大支持請(qǐng)求大小max-request-size: 30MBdubbo:scan:# dubbo 服務(wù)掃描基準(zhǔn)包base-packages: com.shanjupayprotocol:# dubbo 協(xié)議name: dubboport: 20890registry:address: nacos://127.0.0.1:8848application:qos:port: 22240 # dubbo qos端口配置 命令行注入consumer:check: falsetimeout: 3000retries: -1logging:config:classpath: log4j2.xml

生成對(duì)應(yīng)的entity、mapper

在nacos中新建連接池Druid配置:spring-boot-starter-druid.yaml,Group為:COMMON_GROUP

spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedriver‐class‐name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/shanjupay_merchant_service?useSSL=false&useUnicode=true&serverTimezone=GMT%2B8username: rootpassword: 123456druid:initial‐size: 5min‐idle: 5max‐active: 20max‐wait: 60000time‐between‐eviction‐runs‐millis: 60000min‐evictable‐idle‐time‐millis: 300000validation‐query: SELECT 1 FROM DUALtest‐while‐idle: truetest‐on‐borrow: truetest‐on‐return: falsepool‐prepared‐statements: truemax‐pool‐prepared‐statement‐per‐connection‐size: 20filter:stat:slow‐sql‐millis: 1log‐slow‐sql: truefilters: config,stat,wall,log4j2web‐stat‐filter:enabled: trueurl‐pattern: /*exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"session‐stat‐enable: falsesession‐stat‐max‐count: 1000principal‐cookie‐name: adminprincipal‐session‐name: adminprofile‐enable: truestat‐view‐servlet:enabled: trueurl‐pattern: /druid/*allow: 127.0.0.1,192.168.163.1deny: 192.168.211.1reset‐enable: falselogin‐password: adminlogin‐username: adminaop‐patterns: com.shanjupay.*.service.*

在nacos中添加配置:spring-boot-mybatis-plus.yaml,Group為:COMMON_GROUP
?

mybatis‐plus:configuration:cache‐enabled: falsemap‐underscore‐to‐camel‐case: trueglobal‐config:id‐type: 0field‐strategy: 0db‐column‐underline: truerefresh‐mapper: truetypeAliasesPackage: com.shanjupay.merchant.entitymapper‐locations: classpath:com/shanjupay/*/mapper/*.xml

?添加分頁和性能分析插件:MybatisPlusCon?g
?

package com.shanjupay.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.shanjupay.**.mapper") public class MybatisPlusConfig {/*** 分頁插件,自動(dòng)識(shí)別數(shù)據(jù)庫類型*/@Beanpublic PaginationInterceptor paginationInterceptor() {return new PaginationInterceptor();}/*** 啟用性能分析插件*/@Beanpublic PerformanceInterceptor performanceInterceptor(){return new PerformanceInterceptor();} }

?

?

編寫一個(gè)簡(jiǎn)單例子測(cè)試流程

package com.shanjupay.merchant.api.dto;import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data;import java.io.Serializable;@Data @ApiModel(value = "MerchantDTO", description = "商戶信息") public class MerchantDTO implements Serializable {@ApiModelProperty("商戶id")private Long id;@ApiModelProperty("企業(yè)名稱")private String merchantName;@ApiModelProperty("企業(yè)編號(hào)")private Long merchantNo;@ApiModelProperty("企業(yè)地址")private String merchantAddress;@ApiModelProperty("行業(yè)類型")private String merchantType;@ApiModelProperty("營(yíng)業(yè)執(zhí)照")private String businessLicensesImg;@ApiModelProperty("法人身份證正面")private String idCardFrontImg;@ApiModelProperty("法人身份證反面")private String idCardAfterImg;@ApiModelProperty("聯(lián)系人")private String username;@ApiModelProperty("密碼")private String password;@ApiModelProperty("手機(jī)號(hào),關(guān)聯(lián)統(tǒng)一賬號(hào)")private String mobile;@ApiModelProperty("聯(lián)系人地址")private String contactsAddress;@ApiModelProperty("審核狀態(tài),0‐未申請(qǐng),1‐已申請(qǐng)待審核,2‐審核通過,3‐審核拒絕")private String auditStatus;@ApiModelProperty("租戶ID")private Long tenantId; }

啟動(dòng)服務(wù)測(cè)試:

成功

去nacos哪里看:

這里的項(xiàng)目主要是自己復(fù)習(xí)看,很多細(xì)節(jié)沒說清楚

集成swgger2

在shanjupay-merchant-application工程的con?g包中添加一個(gè)Swagger配置類
?

package com.shanjupay.merchant.config;import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2;@Configuration @ConditionalOnProperty(prefix = "swagger",value = {"enable"},havingValue = "true") @EnableSwagger2 public class SwaggerConfiguration {@Beanpublic Docket buildDocket() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(buildApiInfo()).select() // 要掃描的API(Controller)基礎(chǔ)包.apis(RequestHandlerSelectors.basePackage("com.shanjupay.merchant.controller")).paths(PathSelectors.any()).build();}private ApiInfo buildApiInfo() {Contact contact = new Contact("開發(fā)者","","");return new ApiInfoBuilder().title("閃聚支付‐商戶應(yīng)用API文檔").description("").contact(contact).version("1.0.0").build();}}

. 添加SpringMVC配置類:WebMvcCon?g,讓外部可直接訪問Swagger文檔

package com.shanjupay.merchant.config;import org.springframework.stereotype.Component; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Component public class WebMvcConfig implements WebMvcConfigurer {@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");// registry.addResourceHandler("/test/dove/*.jpeg").addResourceLocations("file:D:\\");} }

重啟,在需要使用swagger2的服務(wù)加上@EnableSwagger2注解即可使用(Swagger2回去找啟動(dòng)了@EnableSwagger2且使用了注解的接口等)http://localhost:57010/swagger-ui.html

總結(jié)

1、該系統(tǒng)是自己為復(fù)習(xí)看,會(huì)有些模糊,細(xì)節(jié)沒說清楚。

2、本文主要可以學(xué)習(xí)的知識(shí)點(diǎn):

  • 2.1:日志系統(tǒng)log4j2的搭建
  • 2.2:對(duì)外restful(springcloud)對(duì)內(nèi)rpc(dubbo)的基本使用(將controller、service、serviceImpl+entity+mapper層分不同服務(wù))
  • 2.3:集成swagger2
  • 2.4:nacos的注冊(cè)中心、配置中心基本使用

3、雖說該系統(tǒng)寫了部分實(shí)戰(zhàn)內(nèi)容,但為了更加系統(tǒng),還是會(huì)對(duì)日志搭建、swagger2集成、nacos配置中心的使用進(jìn)行其他文章的分析。

日志搭建:https://mp.csdn.net/console/editor/html/108536129
swagger2集成:https://blog.csdn.net/qq_35599414/article/details/108539906

nacos配置中心的具體使用:

4、本文中遇到的一些錯(cuò)誤:

  • nacos的配置信息要導(dǎo)出到mysql時(shí)要用mysql5.6以上版本
  • 當(dāng)模塊的maven依賴加載不了時(shí)可以將<dependencyManagement>先刪除后等加載好了再加上去
  • serviceImpl如果要用dubbo調(diào)用時(shí)要用 org.apache.dubbo.config.annotation.Service進(jìn)行@Service的注解注入,在獲取service對(duì)象時(shí)用@Reference注解獲取
  • 使用mysql5.7時(shí)建立連接時(shí)要加上:useSSL=false&serverTimezone = GMT%2B8? 不然會(huì)報(bào)錯(cuò)
  • 好了似乎就這幾個(gè)需要注意的

5、下面會(huì)對(duì)該系統(tǒng)進(jìn)行進(jìn)一步記錄
?

?

總結(jié)

以上是生活随笔為你收集整理的聚合支付项目(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。