后端部分
数据库初始化
单库部署
分库部署
业务支撑平台
按所需模块分别运行
v3.5.0/mysql/table
和v3.5.0/mysql/data
下的kems-module-system.sql
、kems-module-log.sql
、kems-module-file.sql
、kems-module-mns.sql
、kems-module-datasync.sql
即可.监控运维平台
运行
v3.5.0/mysql/table
和v3.5.0/mysql/data
下的kems-amo.sql
即可。
JAR包运行
服务配置
- 修改
kems-cloud-config
模块下的jdbc
配置(可选)
- 修改
kems-module-system
下的jdbc
配置
- 修改
kems-module-system
下的redis
配置
- 修改
kems-module-log
下的jdbc
配置
- 修改
kems-module-mns
下的jdbc
配置
- 修改
kems-module-mns
下的redis
配置
- 修改
kems-module-file
下的jdbc
配置
- 修改
kems-module-file
下的redis
配置
- 修改
kems-module-gate
下的redis
配置
工程启动
完成上述配置文件修改后,依次启动服务:
KemsRegisterServerApplication
KemsConfigServerApplication
(可选)
KemsSystemApplication
KemsLogApplication
KemsMnsApplication
(可选)
KemsFileApplication
(可选)
KemsGatewayApplication
注:如登录提示授权码过期,联系研发部韩朋成,获取新的公钥与license.txt文件
替换module-system模块resource下对于环境的application.yml中的公钥,确保license.txt与执行jar文件在同一目录
koca:
oem:
publicKey: xxxxx
WAR包运行
注册中心和网关仍以JAR包运行,其余业务模块(system、log、mns、file等)以WAR包运行,遵照如下配置修改:
pom.xml修改
修改打包方式为war:
<packaging>war</packaging>
在maven依赖列表中更改spring-boot-starter-tomcat
的scope为provided
,这样spring-boot-maven-plugin
不会将tomact相关写打入WEB-INF/lib
,而是将tomcat相关包写入WEB-INF/lib-provided
,这样容器在启动war包时只会加载WEB-INF/lib
下的依赖,其他文件夹的依赖会被忽略。
不用从koca-boot-standalone-starter
或koca-boot-cloud-starter
中显式地排除tomacat相关的包,在依赖列表中重新引入一次即可:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
添加maven-war-plugin
:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<!-- 没有web.xml时不报错 -->
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
启动类调整
使用内嵌的tomcat时,spring boot自动将servlet等信息注册到内嵌tomcat,但是打成war包后,又没有配置web.xml,所以需要在启动时把servlet信息注册到容器中,只需启动类继承SpringBootServletInitializer
并覆盖configure方法即可(Application根据实际修改):
SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
public static void main(String[] args) {
new SpringApplication(Application.class).run(args);
}
}
tomcat配置
将war包解压至tomcat的webapps下,然后修改conf/server.xml的配置,每一个WAR包对应一个Service(下述仅包含两个模块),其中着重注意几个需要修改的地方(Service name、Connector port、Engine name、appBase、docBase、prefix[按需修改],Engine name和Service name的值需相等),具体配置如下:
<Service name="Catalina">
<Connector port="8003" protocol="HTTP/1.1"
connectionTimeout="20000"
compression="on"
compressionMinSize="512"
maxHttpHeaderSize="819200"
compressableMimeType="text/html,text/xml,text/javascript,application/x-javascript,application/javascript,text/css,text/plain,image/png,image/jpg"
redirectPort="8443" URIEncoding="UTF-8"/>
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase=""
unpackWARs="true" autoDeploy="true">
<Context path="/" docBase="D:/tomcat-9.0.33/webapps/kems-module-system" debug="0" reloadable="true" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="kems-module-system" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
<Service name="Catalina2">
<Connector port="8004" protocol="HTTP/1.1"
connectionTimeout="20000"
compression="on"
compressionMinSize="512"
maxHttpHeaderSize="819200"
compressableMimeType="text/html,text/xml,text/javascript,application/x-javascript,application/javascript,text/css,text/plain,image/png,image/jpg"
redirectPort="8443" URIEncoding="UTF-8"/>
<Engine name="Catalina2" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase=""
unpackWARs="true" autoDeploy="true">
<Context path="/" docBase="D:/tomcat-9.0.33/webapps/kems-module-log" debug="0" reloadable="true" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="kems-module-log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
网关配置
gateway.yml新增如下配置,其中uri的端口分别对应上面tomcat的Connector port配置:
spring:
cloud:
gateway:
routes:
- id: module-system
uri: http://localhost:8003 # 指定转发url
predicates: #转发的请求path,如 http://localhost:port/module-system/xxx 都会被转发
- Path=/module-system/**
- id: module-log
uri: http://localhost:8004
predicates:
- Path=/module-log/**
- id: module-mns
uri: http://localhost:8002
predicates:
- Path=/module-mns/**
- id: module-file
uri: http://localhost:8001
predicates:
- Path=/module-file/**
discovery:
locator:
enabled: true
lowerCaseServiceId: true
前端部分
管理端
- 命令行切到工程根目录,执行命令安装依赖包:
npm install
- config.json配置文件按工程需要修改:
{
"ENABLE_BASE_URL": false, //如果使用反向代理配置,此处需设置为true,且BASE_URL为方向代理的网关的地址
"BASE_URL": "",
"FILE_WEBSOCKET":"",
"TIMEOUT": 50000,
"ENABLE_API_ENCRYPT": false,
"API_PREFIX": {
"AUTH_URL_PREFIX": "auth/",
"PARAM_URL_PREFIX": "module-system/",
"USER_URL_PREFIX": "module-system/",
"SYSTEM_URL_PREFIX": "module-system/",
"MESSAGE_URL_PREFIX": "module-mns/",
"FILE_URL_PREFIX": "module-file/",
"LOG_URL_PREFIX": "module-log/"
},
"APP_SETTINGS": {
"MULTI_SERVER_ENV": false,
"LOGIN_CHECK": true,
"JWT_TOKEN_ENABLE": true,
"CONTENT_MARK": false,
"SSO_LOGIN": false,
"MULTIPLE_TAB": true,
"APPLICATION_MODULE": "pmi",
"CONFIG_FORM_REQUEST": true,
"SYSTEM_MODE": "1",
"ROOT_ORG_ID": "1",
"SHOW_ORG_PARENT": "1",
"CURRENT_ORG_MODE": "2",
"ENABLE_DESENSITIZATION": true,
"IS_MATCH_PORT": true,
"WX_APPID":"",//企业微信的企业ID,支持企业微信登录的话必填
"WX_AGEINTID":"",//企业微信应用agentid,支持企业微信登录的话必填
"APP_PREFIX": "kems_",
"IDAAS_LOGIN": false//true:支持统一身份认证登录,false:不支持统一身份认证登录
},
"SSO_LOGIN_PATH": "",
"SSO_LOGOUT_PATH": "",
"VERSION": "1.0.0"
}
- 执行以下命令即可看到效果:
npm run serve
移动端
使用vs code开发
npm install
npm run dev:h5
限于h5开发
使用HBuilderX
导入项目 选择运行 指定运行环境 h5 真机 小程序
config文件修改
导航至项目src>static>config按平台修改
app.ts适用于安卓、ios、各厂商小程序
h5.json适用于h5应用
app.ts
export const appConfig = {
HTTP: {
ENABLE_BASE_URL: true,//是否启用baseurl配置,h5发布在同一域名下可以不启用,从相对路径读取
BASE_URL: {//接口
DEV: 'http://10.202.61.79:1000/ke-cloud/',//调试环境
PROD: 'http://10.202.61.79:1000/ke-cloud/'//发布环境
},
IDAAS_URL: {//统一认证
DEV: 'http://localhost:8080/',//调试环境
PROD: 'http://localhost:8080/'//发布环境
},
FILE_URL: {//文件上传
DEV: 'http://10.202.61.79:1000/ke-cloud/',//调试环境
PROD: 'http://10.202.61.79:1000/ke-cloud/',//发布环境
},
TIMEOUT: 30000//接口调用超时时间
},
RESOURCE_URL: '',
API_PREFIX: {
AUTH_URL_PREFIX: 'auth/',
SYSTEM_URL_PREFIX: 'module-system/',
MESSAGE_URL_PREFIX: 'module-mns/',
FILE_URL_PREFIX: 'module-file/',
LOG_URL_PREFIX: 'module-log/'
},
APP_SETTINGS: {
LOGIN_TYPE: 2,
APPLICATION_MODULE: 'pmi-app',
SYSTEM_MODE: '1',
ROLE_MODE: '1',
ROOT_ORG_ID: '1',
SHOW_DEPT_PARENT: '1',
CURRENT_ORG_MODE: '2',
ENABLE_DESENSITIZATION: true,
ENABLE_IDAAS_LOGIN: false,//是否开启统一认证登录
CLIENT_ID: 'd749ac2cc53a4a4b905cc9a1cc9d4637',
CLIENT_SECRET: 'e98a4d4d92804c4f83073dc85d78ec52',
SELF_CLIENT: true
}
};
h5.json
{
"HTTP": {
"ENABLE_BASE_URL": true,//是否启用baseurl配置,h5发布在同一域名下可以不启用,从相对路径读取
"BASE_URL": {//接口
"DEV": "http://localhost:7811/ke-cloud/",//调试环境
"PROD": "http://10.202.61.79:1000/ke-cloud/"//发布环境
},
"IDAAS_URL": {//统一认证
"DEV": "http://localhost:8080/",//调试环境
"PROD": "http://localhost:8080/"//发布环境
},
"FILE_URL": {//文件上传
"DEV": "http://localhost:7811/ke-cloud/",//调试环境
"PROD": "http://10.202.61.79:1000/ke-cloud/"//发布环境
},
"TIMEOUT": 30000
},
"RESOURCE_URL": "",
"API_PREFIX": {
"AUTH_URL_PREFIX": "auth/",
"SYSTEM_URL_PREFIX": "module-system/",
"MESSAGE_URL_PREFIX": "module-mns/",
"FILE_URL_PREFIX": "module-file/",
"LOG_URL_PREFIX": "module-log/"
},
"APP_SETTINGS": {
"LOGIN_TYPE": 2,
"APPLICATION_MODULE": "pmi-app",
"SYSTEM_MODE": "1",
"ROLE_MODE": "1",
"ROOT_ORG_ID": "1",
"SHOW_DEPT_PARENT": "1",
"CURRENT_ORG_MODE": "2",
"ENABLE_DESENSITIZATION": true,
"ENABLE_IDAAS_LOGIN": false,//是否开启统一认证登录
"CLIENT_ID": "d749ac2cc53a4a4b905cc9a1cc9d4637",
"CLIENT_SECRET": "e98a4d4d92804c4f83073dc85d78ec52",
"SELF_CLIENT": true
}
}
服务器部署
1、nginx.conf增加反向代理配置
server {
listen 1000;
server_name localhost;
# 代理网关
location /ke-cloud/ {
proxy_pass http://10.202.61.79:8080/;
}
# 代理前端项目,本例中9091为tomcat端口,将前端项目改成admin放置到webapps目录下
#location / {
# proxy_pass http://10.202.61.79:9091/;
#}
# 前端项目部署在nginx下
location / {
root html;
index index.html index.htm;
}
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
}
2、启动nginx服务器
nginx -c conf/nginx.conf
3、页面验证
访问地址:http://10.202.61.79:1000/admin/#/login (admin/1)