# iPaaS Portal 后端代码定制规范
# 文档说明
本文档主要介绍在 Windows 系统中,基于JDK 1.8.0_251、 EOS 8.3.3、AFCenter 8.3.3、MySQL 5.7.33数据库源码启动开发。
# 获取源码
在ame+/客服售后/我的源代码申请,发起申请,获取iPaaS Portal源码。
# Maven settings文件配置
导入项目前先准备好需要的maven settings文件,开发环境使用公司提供的默认settings配置文件,如下。
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">
<localRepository>D:\workspace\ESBRepository</localRepository>
<pluginGroups>
</pluginGroups>
<proxies>
</proxies>
<servers>
</servers>
<mirrors>
<mirror>
<id>mirror</id>
<mirrorOf>central,jcenter,!aliyun-rdc-releases,!aliyun-rdc-snapshots</mirrorOf>
<name>mirror</name>
<url>https://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
<!--
<mirror>
<id>maven-default-http-blocker</id>
<mirrorOf>external:http:*</mirrorOf>
<name>Pseudo repository to mirror external repositories initially using HTTP.</name>
<url>http://0.0.0.0/</url>
<blocked>true</blocked>
</mirror>
-->
</mirrors>
<profiles>
<profile>
<id>nexus.euler.one</id>
<repositories>
<repository>
<id>primeton-studio-repository</id>
<url>http://192.168.2.1:8081/nexus/content/repositories/Primeton_Product_Stage/</url>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
</repository>
<repository>
<id>primeton-public-repository</id>
<url>http://192.168.2.1:8081/nexus/content/groups/primeton_public_repositories/</url>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>primeton-studio-repository</id>
<url>http://192.168.2.1:8081/nexus/content/repositories/Primeton_Product_Stage/</url>
</pluginRepository>
<pluginRepository>
<id>primeton-public-plugin-repository</id>
<url>http://192.168.2.1:8081/nexus/content/groups/primeton_public_repositories</url>
</pluginRepository>
<pluginRepository>
<id>primeton-public-maven-plugin-repository</id>
<url>http://192.168.2.1:8081/nexus/content/groups/primeton_public_maven_repositories/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexus.euler.one</activeProfile>
</activeProfiles>
</settings>
# 项目导入
使用IDEA 打开iPaaS Portal的源码目录,选择根pom,导入成maven工程
# 安装依赖包
执行Maven 的install操作,安装到本地Maven仓库, 以便其它Maven 项目可以引用它。
# 数据库初始化
获取的安装包(Primeton_iPaaS_9.1.0_Portal_Standalone.tar),解压后执行如下脚本:
- 以 Mysql 为例,创建编码格式为 UTF-8 的数据库 ipass。
- 在“Primeton_iPaaS_9.1.0_Portal_Standalone\db-scripts”目录下,按照数字顺序执行数据库脚本,具体顺序如下:
1. eos/Mysql/eos_all.sql
2. afcenter/Mysql/afc_all.sql
3. esb/Mysql/1-esb-afc-data.sql
4. esb/Mysql/2-schema-esb-mysql.sql
5. esb/Mysql/3-data-esb-mysql.sql
6. esb/Mysql/4-data-ipaas-connector-mysql.sql
# 配置修改
1.将数据库驱动jar包和方言jar包添加到项目依赖的lib下。
2.在 com.primeton.esb.governor.esbafcboot 模块下修改配置文件。
打开“application.properties”文件,修改数据库配置。
server.port=8080
server.connection-timeout=60000
spring.pid.file=pid
spring.profiles.active=nacos,afc,esb
spring.application.name=ESB
spring.jmx.default-domain=${spring.application.name}
spring.cloud.inetutils.preferred-networks=192.168
server.app-server.min-spare-threads=100
server.app-server.max-threads=500
server.app-server.max-connections=1000
server.app-server.accept-count=200
management.health.elasticsearch.enabled=false
spring.resources.static-locations=file:./webapp #前端静态资源路径
management.endpoints.web.exposure.include=hystrix.stream,health,info,loggers,eos,mappings
spring.main.allow-bean-definition-overriding=true
out.config.folder=config
eos.profiles.active=dev
eos.cache.mode=redis
eos.admin.port=${server.port}
eos.application.sys-code=EOS-DEMO-SYS
eos.application.sys-key=dc6baaed30e541d78bb91274803d9432
spring.session.store-type=none
# redis
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.password=123456
spring.redis.lettuce.pool.max-active=100
spring.redis.lettuce.pool.max-idle=100
spring.redis.lettuce.pool.max-wait=5000
# hibernate
spring.jpa.open-in-view=false
spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true
spring.jpa.properties.hibernate.connection.handling_mode=IMMEDIATE_ACQUISITION_AND_HOLD
spring.jpa.properties.hibernate.new_generator_mappings=false
spring.jpa.properties.hibernate.ddl-auto=none
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect #默认mysql数据库方言
spring.jpa.properties.database=MYSQL #默认mysql数据库
spring.mvc.dateFormat=yyyy-MM-dd HH:mm:ss
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8
spring.jackson.serialization.write-dates-as-timestamps=false
#swagger
swagger.enable=false
# feign
feign.client.config.default.connectTimeout=2000
feign.client.config.default.readTimeout=1000
#AFC\u90E8\u7F72\u65B9\u5F0F sdk || starter
console.deploy.type=starter
#mock\u7AEF\u53E3
afc.console.mock.port=1080
参数 | 说明 |
---|---|
server.port | iPaaSPortal服务的端口,默认8080。 |
eos.cache.mode | 缓存方式,默认redis。 |
spring.redis.host | eos.cache.mode=redis时,需要配置redis的IP地址。 |
spring.redis.port | eos.cache.mode=redis时,需要配置redis端口。 |
spring.redis.password | eos.cache.mode=redis时,需要配置redis密码。 |
spring.jpa.properties.hibernate.dialect | 数据库方言类,默认mysql数据库方言,其它数据库参考:1.1 安装须知 的 数据库配置 章节的 方言配置。 |
spring.jpa.properties.database | 参考下方表格。 |
database类型对应关系
数据库名称 | spring.jpa.properties.database |
---|---|
sqlserver | sqlserver |
mysql | mysql |
uxdb | uxdb |
postgresql | postgresql |
oscar | oscar |
oracle | oracle |
opengauss | opengauss |
KingbaseES | KingbaseES |
highgo | highgo |
GBase8s | GBase8s |
GBase8a | GBase |
DM | DM |
- 打开application-esb.properties, 修改elasticsearch相关配置:
#esb restTemplate
esb.business=true
esb.database.init=false
esb.database.enforceInit=false
esb.rest.client.socket.timeout=20000
esb.rest.client.connect.timeout=10000
esb.rest.client.connectionRequest.timeout=10000
esb.rest.client.evictIdleConnections=60
esb.rest.client.ConnectionTimeToLive=60
elasticsearch.enabled=true
elasticsearch.ioThreadCount=50
elasticsearch.connectTimeout=60000
elasticsearch.maxTotal=10000
elasticsearch.maxPerRoute=1000
elasticsearch.numberOfShards=1
elasticsearch.numberOfReplicas=0
elasticsearch.refreshInterval=10s
elasticsearch.username=elastic
elasticsearch.password=primeton000000
elasticsearch.certificate=C:\\Users\\s\\Desktop\\es\\http_ca.crt
elasticsearch.hosts[0].ip=127.0.0.1
elasticsearch.hosts[0].port=9200
elasticsearch.hosts[0].protocol=https
参数 | 说明 |
---|---|
elasticsearch.enabled | 是否启用ElasticSearch,默认为true。 |
elasticsearch.username | ElasticSearch 的访问用户名,默认为elastic。 |
elasticsearch.password | ElasticSearch 的访问密码,密码为安装elasticsearch时设置的密码 |
elasticsearch.certificate | ElasticSearch的证书,该证书为elasticsearch-8.1.2\config\certs下的http_ca.crt文件,文件位置需配置绝对路径 |
elasticsearch.hosts[0].ip | 配置成安装ElasticSearch的机器IP地址。 |
elasticsearch.hosts[0].port | ElasticSearch 的启动端口号。默认为9200。 |
elasticsearch.hosts[0].protocol | ElasticSearch 的http协议,默认https。 |
- 打开user-config.xml文件,修改数据库及配置。
<group name="default">
<configValue key="Database-Type">MySql</configValue>
<configValue key="Jdbc-Type"/>
<configValue key="C3p0-DriverClass">com.mysql.jdbc.Driver</configValue>
<configValue key="C3p0-Url">jdbc:mysql://127.0.0.1:3306/ipass?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&useSSL=false</configValue>
<configValue key="C3p0-UserName">root</configValue>
<configValue key="C3p0-Password">root</configValue>
<configValue key="C3p0-PoolSize">10</configValue>
<configValue key="C3p0-MaxPoolSize">50</configValue>
<configValue key="C3p0-MinPoolSize">10</configValue>
<!-- //seconds, 0 means connections never expire -->
<configValue key="C3p0-MaxIdleTime">600</configValue>
<!-- //idle connections never tested -->
<configValue key="C3p0-IdleConnectionTestPeriod">900</configValue>
<configValue key="C3p0-MaxStatements">0</configValue>
<configValue key="C3p0-NumHelperThreads">1</configValue>
<configValue key="Transaction-Isolation">ISOLATION_DEFAULT</configValue>
<configValue key="Test-Connect-Sql">SELECT count(*) from EOS_UNIQUE_TABLE</configValue>
<configValue key="Retry-Connect-Count">-1</configValue>
</group>
参数 | 说明 |
---|---|
Database-Type | 参考本章节的 database类型对应关系 小节 |
DriverClass | 数据库类型,根据实际环境修改。其它数据库参考:1.1 安装须知 的 数据库配置 章节的 驱动类名称。 |
Url | 访问数据库的JDBC URL,根据实际环境修改。其它数据库参考:1.1 安装须知 的 数据库配置 章节的 连接URL。 |
UserName | 数据库用户名,根据实际环境修改。例如:root |
Password | 数据库用户密码,根据实际环境修改。例如:111111 |
# 更新license文件
将项目中的license文件primetonlicense.xml替换为有效license,文件路径为:com.primeton.esb.governor.esbafcboot\src\META-INF_srv\primetonlicense.xml。
# 更新target
运行com.primeton.esb.governor.esbafcboot 模块下Maven clean、compile或install,更新target,确保修改的配置和license生效。
# 项目启动
1.运行com.primeton.esb.governor.esbafcboot 模块下的Application,启动iPaaS Portal。
2.启动后,查看日志,如下图则启动成功。