服务类模块介绍
incloud-base-admin
使用的是基于springboot admin的依赖,对服务进行监控,注意需要使用此服务对其要监控的服务进行监控时, 需要添加上相应的依赖;
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
如果使用了平台的 @ResourceConfiguration 注解后,默认已经放行了相应监控的资源url,如果不使用,需要自己配置放行相应URL及资源文件。
同时需要配置yaml文件打开相应的endpoints和管理端端口,如下:
...
management:
endpoints:
web:
exposure:
include: "*"
endpoint:
health:
show-details: ALWAYS
server:
port: 18003
incloud-base-gateway
作为微服务架构中的API网关,它主要负责请求路由、API组合、负载均衡、限流、熔断、认证与授权等功能。 在平台中我们用到他的功能主要有以下几个:
请求路由:这是他基本的功能,所有的子服务都使用了网关配置的路由转发规则进行请求转发。
动态路由:在数据建模中配合使用了动态接口,可以根据在线创建数据建模动态发布接口、取消接口,其原理就是利用了spring cloud gateway的动态路由特性。
路径重写:主要应用在系统提供的认证模块中大量使用了路径重写,用于一个基础服务提供多种不同方式的请求URL。
过滤器:在平台中使用到网关的过滤器,如果对Bear Token的处理等。
开启动态路由的配置
spring:
cloud:
gateway:
httpclient:
connect-timeout: 60000
response-timeout: 30s
discovery:
locator:
#开启从注册中心动态创建路由的功能
enabled: true
#使用小写服务名,默认是大写
lower-case-service-id: true
filter的应用
...
- id: incloud-base-main
uri: lb://incloud-base-main
predicates:
- Path=/main/**
filters:
- StripPrefix=1
- name: TokenHeader
order: 10000
...
路由的重写、增加参数、增加header等应用
...
- id: biz-login
uri: lb://incloud-base-main
predicates:
- Path=/biz/login
filters:
- PreserveHostHeader
- RewritePath=/biz/login,/oauth2/token
- AddRequestParameter=grant_type,client_credentials
- AddRequestHeader=loginType,biz
...
完整的网关配置
incloud:
table:
packages:
- com.netwisd.base.gateway.entity
spring:
cloud:
gateway:
httpclient:
connect-timeout: 60000
response-timeout: 30s
discovery:
locator:
#开启从注册中心动态创建路由的功能
enabled: true
#使用小写服务名,默认是大写
lower-case-service-id: true
routes:
- id: sys-login
uri: lb://incloud-base-main
predicates:
- Path=/sys/login
filters:
- PreserveHostHeader
- RewritePath=/sys/login,/oauth2/token
- AddRequestParameter=grant_type,client_credentials
- AddRequestHeader=loginType,sys
- id: biz-login
uri: lb://incloud-base-main
predicates:
- Path=/biz/login
filters:
- PreserveHostHeader
- RewritePath=/biz/login,/oauth2/token
- AddRequestParameter=grant_type,client_credentials
- AddRequestHeader=loginType,biz
- id: client-login
uri: lb://incloud-base-main
predicates:
- Path=/client/oauth
filters:
- PreserveHostHeader
- RewritePath=/client/oauth,/oauth2/token
- AddRequestParameter=grant_type,client_credentials
- id: incloud-base-fine
uri: lb://incloud-base-main
predicates:
- Path=/fine/**
filters:
- StripPrefix=1
order: 10000
- id: incloud-base-wf
uri: lb://incloud-base-wf
predicates:
- Path=/wf/**
filters:
- StripPrefix=1
order: 10000
- id: incloud-base-main-websocket
uri: lb:ws://incloud-base-main
predicates:
- Path=/ws/**
order: 10000
- id: incloud-base-main
uri: lb://incloud-base-main
predicates:
- Path=/main/**
filters:
- StripPrefix=1
- name: TokenHeader
order: 10000
- id: incloud-product-portal
uri: lb://incloud-product-portal
predicates:
- Path=/portal/**
filters:
- StripPrefix=1
order: 10000
- id: incloud-base-log
uri: lb://incloud-base-log
predicates:
- Path=/log/**
filters:
- StripPrefix=1
order: 10000
- id: incloud-base-demo
uri: lb://incloud-base-demo
predicates:
- Path=/demo/**
filters:
- StripPrefix=1
order: 10000
knife4j:
gateway:
enable: true
routes:
- name: Main服务
url: /main/v3/api-docs
service-name: main-service
order: 1
- name: Portal服务
url: /portal/v3/api-docs
service-name: portal-service
order: 2
- name: Wf服务
url: /wf/v3/api-docs
service-name: wf-service
order: 3
- name: Log服务
url: /log/v3/api-docs
service-name: log-service
order: 4
- name: 帮助服务
url: /log/v3/api-docs
service-name: help-service
order: 5
management:
endpoint:
gateway:
enabled: true
endpoints:
web:
exposure:
include: gateway
incloud-base-main
主服务是做为平台的核心服务,所有业务都是基于主服务,所以主服务必须优先启动,主服务本身并没有什么实现,其功能都是相应的依赖包提供的。 其自身的配置主要有以下几项:
MainConfig
@Knife4jConfig(title = "主模块")
@ResourceConfiguration(permitAll = {"/ctsApiController/**", "/smsTaskApiController/**", "/securityApiController/**", "/appApiController/**",
"/sso/**", "/authenticationManagement/authenticator", "/fileinfo/stream", "/ws/msg", "/preview/info/**", "/ws/**"})
public class MainConfig {
}
nacos yaml
incloud:
table:
packages:
- com.netwisd.base.center.entity
- com.netwisd.base.cts.entity
- com.netwisd.base.dict.entity
- com.netwisd.base.dynamic.entity
- com.netwisd.base.file.entity
- com.netwisd.base.log.entity
- com.netwisd.base.mdm.entity
- com.netwisd.base.model.entity
- com.netwisd.base.msg.entity
- com.netwisd.base.openapi.entity
- com.netwisd.base.permission.entity
- com.netwisd.base.sms.entity
- com.netwisd.base.task.entity
- com.netwisd.base.app.entity
- com.netwisd.base.security.entity
- com.netwisd.base.help.entity
index:
update: false
openapi:
prefix: main
feign: #开启Feign熔断
hystrix:
enabled: true
seata:
registry:
type: nacos
nacos:
application: seata-server
server-addr: ${INCLOUD_NACOS_SERVICE_HOST}:${INCLOUD_NACOS_SERVICE_PORT}
group : "DEFAULT_GROUP"
namespace: ${INCLOUD_NACOS_NAMESPACE}
username: "nacos"
password: "nacos"
service:
vgroup-mapping:
incloud-base-mdm-seata-service-group: default
tx-service-group: incloud-base-mdm-seata-service-group
elasticsearch:
address: ${INCLOUD_ES_SERVICE_HOST}:${INCLOUD_ES_SERVICE_PORT}
canal:
canalServer: ${INCLOUD_ES_SERVICE_HOST}
canalPort: 11111
destination: incloud5
userName: canal
spring:
main:
allow-bean-definition-overriding: true
rocketmq:
isSend: true
disable: true
namesrvAddr: ${INCLOUD_ROCKETMQ_SERVICE_HOST}:${INCLOUD_ROCKETMQ_SERVICE_PORT}
orgTopics: geps_org_topic,oa_org_topic
postTopics: geps_post_topic,oa_post_topic
dutyTopics: geps_duty_topic,oa_duty_topic
userTopics: geps_user_topic,oa_user_topic
mdmUserCache: mdm_user_cache_topic
mail:
host: smtp.qq.com # 配置 smtp 服务器地址
port: 587 # smtp 服务器的端口
username: 2523079491@qq.com # 配置邮箱用户名(你的邮箱地址)
password: gebtediiknpidhjd # 配置申请到的授权码(刚让复制的授权码)
default-encoding: UTF-8 # 配置邮件编码
properties:
mail:
smtp:
socketFactoryClass: javax.net.ssl.SSLSocketFactory # 配饰 SSL 加密工厂
debug: true
jsms:
appKey: 2e18a2cf2d222f148836f14c
secret: 75f535a57308cce7e88ba4f2
jiguang:
appKey: xxx
masterSecret: xxxx
templateId: 203952
file:
isUploadPreview: true
local:
path: /root/incloud/statics
prefix: /statics
urlPrefix: ${file.local.prefix}
exclude:
- asp
- sql
- sh
- exe
- js
- html
- ashx
minio:
url: http://${INCLOUD_MINIO_SERVICE_HOST}:${INCLOUD_MINIO_SERVICE_PORT}
accessKey: ${INCLOUD_MINIO_ACCESSKEY}
secretKey: ${INCLOUD_MINIO_SECRETKEY}
bucketName: ${INCLOUD_MINIO_BACKETNAME}
aliyun:
stsEndpoint: xxxx
stsRoleArn: xxxx
ossEndpoint: xxxx
accessKeyId: xxxx
accessKeySecret: xxxx
bucketName: incloud5
domain:
finereport:
reportletsPath: /root/incloud5/statics/reportlets
management:
server:
port: 18001
go:
client:
connect: true
start: true
server:
level: debug
path: logs/incloud-go
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>incloud-base</artifactId>
<groupId>com.netwisd</groupId>
<version>5.1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>incloud-base-main</artifactId>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- openApi -->
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-starter-base-openapi</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
<!-- wf-start-->
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-starter-base-wf</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
<!-- app -->
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-base-dependency-app</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
<!-- task -->
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-base-dependency-task</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
<!-- openapi -->
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-base-dependency-openapi</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
<!-- msg -->
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-base-dependency-msg</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
<!-- permission -->
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-base-dependency-permission</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
<!-- mdm -->
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-base-dependency-mdm</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
<!-- model -->
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-base-dependency-model</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
<!-- file -->
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-base-dependency-file</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-base-dependency-fine</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
<!-- dynamic -->
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-base-dependency-dynamic</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
<!--dict-->
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-base-dependency-dict</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
<!--help-->
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-base-dependency-help</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
<!-- security -->
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-base-dependency-security</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
<!-- CODE -->
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-starter-common-code</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
<!-- nacos的注册发现 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- nacos的配置中心 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!-- reflectasm -->
<dependency>
<groupId>com.esotericsoftware.reflectasm</groupId>
<artifactId>reflectasm</artifactId>
<version>1.07</version>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
<!--<executable>true</executable>
<!– 默认值是${artifactId}-${version} –>
<!– 改为如下设置,即可去除jar包的版本号 –>
<finalName>${artifactId}-${version}</finalName>-->
</configuration>
</plugin>
</plugins>
</build>
</project>
incloud-base-log
此模块为系统的日志模块,此模块主要依赖es服务,需要配置中间件es,项目上使用时, 不必要有什么需要特别配置的,可以直接使用平台提供的服务包,平台以docker image形式提供。
incloud-base-wf
工作流服务包里主要是提供独立的工作流服务,由平台默认提供docker image,项目上也可以直接自己创建相应服务,添加上wf相应依赖
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>incloud-base</artifactId>
<groupId>com.netwisd</groupId>
<version>5.1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>incloud-base-wf</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-base-dependency-wf</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
<!-- openApi -->
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-starter-base-openapi</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
<!-- netwisd security模块 -->
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-starter-base-oauth</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
<!-- nacos的注册发现 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- nacos的配置中心 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
</plugins>
</build>
</project>
Dockerfile
wf的Dockerfile需要注意一点,运行java的参数与其他服务不同,如下:
CMD java --add-opens java.base/java.lang.reflect=ALL-UNNAMED -Xms128m -Xmx2048m -jar incloud-base-wf.jar
wf的yaml配置
incloud:
table:
packages:
- com.netwisd.base.wf.entity
openapi:
prefix: wf
camunda:
bpm:
database:
table-prefix: incloud_base_wf_
schema-update: false
#type: mysql
type: postgres
seata:
registry:
type: nacos
nacos:
application: seata-server
server-addr: ${INCLOUD_NACOS_SERVICE_HOST}:${INCLOUD_NACOS_SERVICE_PORT}
group : "DEFAULT_GROUP"
namespace: ${INCLOUD_NACOS_NAMESPACE}
username: "nacos"
password: "nacos"
service:
vgroup-mapping:
incloud-base-wf-seata-service-group: default
tx-service-group: incloud-base-wf-seata-service-group
management:
server:
port: 18003
依赖模块介绍
incloud-base-dependency-app
app模块为应用管理模块,此模块后期做为应用商店的一部分,当前版本中可以做为main服务的依赖直接引用即可。
<!-- app -->
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-base-dependency-app</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
incloud-base-dependency-dict
dict模块为数据字典模块,当前版本中可以做为main服务的依赖直接引用即可。
<!-- app -->
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-base-dependency-dict</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
incloud-base-dependency-dynamic
dynamic模块为动态接口模块,做为数据建模依赖的一部分,做为model的一部分,做为业务服务和main服务不需要显示的引用。
<!-- app -->
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-base-dependency-dynamic</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
incloud-base-dependency-file
file模块为文件管理模块,做为平台的文件上传和文件数据源管理使用,当前版本中可以做为main服务的依赖直接引用即可。
<!-- app -->
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-base-dependency-file</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
incloud-base-dependency-fine
fine模块为报表模块,做为报表文件管理使用,可以通过系统上传报表文件到指定共享目录中,供报表工具使用,当前版本中可以做为main服务的依赖直接引用即可。
<!-- app -->
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-base-dependency-fine</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
incloud-base-dependency-gateway
gateway模块为网关模块,当前版本中可以做为gateway服务的依赖直接引用即可。
<!-- app -->
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-base-dependency-gateway</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
incloud-base-dependency-help
help模块为帮助模块,提供系统界面中的帮助文档上传功能,当前版本中可以做为main服务的依赖直接引用即可。
<!-- app -->
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-base-dependency-help</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
incloud-base-dependency-log
log模块为帮助模块,当前版本中可以做为log服务的依赖直接引用即可。
<!-- app -->
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-base-dependency-log</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
incloud-base-dependency-mdm
mdm模块为主数据模块,提供组织、用户、岗位、角色、菜单、资源授权等基础服务的,当前版本中可以做为main服务的依赖直接引用即可。
<!-- app -->
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-base-dependency-mdm</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
incloud-base-dependency-model
model模块为模型模块,提供数据建模、数据源管理、调用动态接口等作用,当前版本中可以做为main服务的依赖直接引用即可。
<!-- app -->
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-base-dependency-model</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
incloud-base-dependency-msg
msg模块为消息模块,提供消息提醒功能,当前版本中可以做为main服务的依赖直接引用即可。
<!-- app -->
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-base-dependency-msg</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
incloud-base-dependency-openapi
openapi模块为接口模块,提供接口注册、管理、授权等功能,当前版本中可以做为main服务的依赖直接引用即可。
<!-- app -->
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-base-dependency-openapi</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
incloud-base-dependency-permission
permission模块为数据权限模块,提供数据层面的权限过滤功能,当前版本中可以做为main服务的依赖直接引用即可。
<!-- app -->
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-base-dependency-permission</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
incloud-base-dependency-security
security模块为安全认证模块,提供登录、认证、单点、客户端管理等功能,当前版本中可以做为main服务的依赖直接引用即可。
<!-- app -->
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-base-dependency-security</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
incloud-base-dependency-task
task模块为任务模块,提供定时任务调度功能,当前版本中可以做为main服务的依赖直接引用即可。
<!-- app -->
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-base-dependency-task</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
incloud-base-dependency-wf
wf模块为工作流模块,提供流程相关的所有功能,当前版本中可以做为wf服务的依赖直接引用即可。
<!-- app -->
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-base-dependency-wf</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
incloud-starter
incloud-starter模块为平台的starter模块,提供了平台的starter包,这些starter包主要是一些基础的技术层的服务包, 一般情况下跟业务的关系不大。
incloud-starter-base-center
主要是为任务管理中心提供依赖支持,业务上一般不使用。
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-starter-base-center</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
incloud-starter-base-oauth
给业务服务提供统一认证、授权、单点登录等功能,业务服务中一般都需要集成此依赖。
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-starter-base-oauth</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
incloud-starter-base-openapi
给业务服务提供接口注册、管理、授权等功能,业务服务中一般都需要集成此依赖。
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-starter-base-openapi</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
incloud-starter-base-permission
给业务服务提供数据权限过滤功能,它提供了默认数据权限、自定义数据权限等多种方式,可以配置平台的数据权限设置使用,业务服务中如果有数据权限的功能,可以集成此模块。
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-starter-base-permission</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
incloud-starter-base-security
基于spring-security、spring-security-oauth2-authorization-server的统一服务鉴权、认证的基础依赖封装, 主要是为incloud-starter-base-oauth、incloud-base-dependency-security提供基础的底层依赖,业务服务中不需要依赖。
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-starter-base-security</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
incloud-starter-base-wf
基于camunda的工作流服务的starter包,主要是为incloud-base-dependency-wf提供基础的底层依赖,业务中需要使用工作流的,只需要集成这个starter即可。详细使用请参考【工作流】
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-starter-base-wf</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
incloud-starter-common-core
平台的基础核心依赖,几乎所有的服务都需要依赖这个,不过因为平台的其他starter都依赖了这个,所以业务服务中不需要显示的引用。
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-starter-common-core</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
incloud-starter-common-db
平台的数据库依赖,主要封装了对数据库mysql/postgres/vastbase/dm/kingbaset等数据库,业务模块上需要使用数据库的自动化创建表、以及平台封装的数据库批量操作、数据源管理等功能的,都需要依赖这个。
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-starter-common-db</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
incloud-starter-common-es
针对ES操作相关的封装,如果业务中使用到对es的相关操作,可以引用此依赖
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-starter-common-es</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
incloud-starter-common-log
对系统和业务日志记录的封装,业务中的操作相关会通过此依赖记录并送到mq中,最终再存入到es中,所以引入此依赖的前提,是需要环境中有es和mq。
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-starter-common-log</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
incloud-starter-common-mq
此依赖针对了rocketmq和rabbitmq进行了封装组件,使用不同的mq,需要引用不同的mq组件。
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-starter-common-mq-rabbit</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-starter-common-mq-rabbit</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
incloud-starter-common-task
针对定时任务相关的封装。
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-starter-common-task</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
incloud-go-starter
平台部分功能使用了go底层依赖,incloud-go-starter就是java跟go通信的介质,基于google的开源框架gRPC实现,性能和安全性有保证。
incloud-go-starter版本与平台的版本一一对应,对应pom如下:
<dependency>
<groupId>com.netwisd</groupId>
<artifactId>incloud-go-starter</artifactId>
<version>5.1.0-SNAPSHOT</version>
</dependency>
异常处理
由于是两个完全独立的程序,对于异常的处理,需要引入方做异常try catch处理,go端程序如果发生异常后,会通过gRPC框架返回, 客户端只需要捕获异常即可。