文章目录
文章目录
项目初始化
通过本指南快速上手lcp开发平台
开发工具
以下工具都可以从公司内部ftp上获取
- Jdk 1.8
- Redis 3.0+
- Maven 3.3+,参考首页完成私有仓库配置
- Tomcat 7+
- Svn 1.8+
- IntelliJ IDEA 2017+
- Mysql server 5.6+
- Navicat Premium 10+
代码初始化
从svn上下载项目开发模板
http://172.16.1.78:81/svn/06_源代码管理/S008_LCP平台/applicationTemplete
从首页地址获取并访问Maven私有仓库,查找并修改为最新稳定的extension版本号
<dependency>
<groupId>com.fsl</groupId>
<artifactId>lcp.extension</artifactId>
<type>war</type>
<version>2.5-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.fsl</groupId>
<artifactId>lcp.extension</artifactId>
<classifier>classes</classifier>
<scope>provided</scope>
<version>2.5-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.fsl</groupId>
<artifactId>lcp.wrapper</artifactId>
<type>war</type>
<version>2.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.fsl</groupId>
<artifactId>lcp.wrapper</artifactId>
<classifier>classes</classifier>
<scope>provided</scope>
<version>2.1-SNAPSHOT</version>
</dependency>
基于项目实际需求修改pom文件中的如下属性
<project>
……
<artifactId>applicationTemplete</artifactId>
<version>1.0-RELEASE</version>
……
<build>
……
<finalName>applicationTemplete</finalName>
……
</build>
</project>
执行如下命令,完成项目首次打包
mvn clean package
数据库初始化
使用如下信息连接数据库
ip:172.16.20.118
port:3306
user:root
pwd:fswl@1234
平台使用Mysql数据库完成开发。登录数据库服务器,在my.cnf(或my.ini)完成以下配置
# 忽略大小写
lower_case_table_names=1
# 采用utf8mb4编码,utf8mb4才是真正的utf8编码,能够存储各类符号
character_set_server=utf8mb4
# 默认值为100,调整到500
max_connections=500
如果数据库开启了bin-log日志,则还需在my.cnf(或my.ini)添加以下配置
log_bin_trust_function_creators=1
使用utf8mb4
字符集,创建名为applicationTemplete
的数据库。数据库名称可按需求修改。
访问target\war\work\com.fsl\lcp.extension\WEB-INF\classes\db
路径,按顺序执行脚本,初始化表结构与表数据
平台默认使用JNDI配置数据源。数据源的配置独立于项目配置。打开tomcat安装目录/conf/context.xml
文件,添加如下配置。注意各参数应按需修改
<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" name="jdbc/lcp_db" type="javax.sql.DataSource" url="jdbc:mysql://172.16.20.118:3306/applicationTemplete" username="root" password="fswl@1234"/>
首次启动
本地先行启动Redis。使用Idea打开项目并完成Tomcat配置。使用admin/Fslgz@1234!!登录,成功启动后的面如下。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5vzASari-1586308930974)(.\pic\20190324-205613.png)]
项目参数
在src\main\resources\profiles
目录下,存储了项目四套环境参数配置,说明如下
名称 | 描述 |
---|---|
dev | 开发环境参数 |
sit | 综测环境参数 |
uat | 业测环境参数 |
prod | 正式环境参数 |
Apollo配置
需要指定Apollo上应用程序编码与Apollo服务器地址。此配置放置在app.properties
app.id=lcp
apollo.meta=http://172.16.20.136:8080
项目配置
目前项目的所有配置统一由Apollo管理。
系统配置
系统级参数配置
# system
env.code = DEV
sys.code = TEMPLETE
sys.name = 模板
sys.log.dir = /lcp_logs
sys.webroot.url = http://localhost:8080/applicationTemplete/
sys.home.refresh.interval = 60
分布式锁
当前未启用
# redisson
# multiple redis such as
# redisson.server.url=\
# 127.0.0.1:6379,\
# 10.211.103.142:6379
# redisson.server.url=
# redissson.server.password=
通知管理
# mail notify
mail.smtp.host=mail.fslgz.com
mail.smtp.port=587
mail.smtp.username=lcpnotice
mail.smtp.password=lcp!@2019
mail.smtp.auth=true
mail.smtp.timeout=50000
#mail.from=lcpnotice@fslgz.com
# sms notify
sms.corpid=105686
sms.loginname=system
sms.password=390323
sms.url=https://sms.mobset.com:843/SDK3/SMS
# dd nofity
dingtalk.corp.id=ding6b6ffebcd75ef63335c2f4657eb6378f
dingtalk.app.key=dinggkwxz61kgu7vvw8a
dingtalk.app.secret=VnA-wL-bqviMkIsw_Qn81TqH-Q7fqzCchOglmBjplbjeBZvdzH5MZ8e66vDNefo-
dingtalk.default.agentid=280426666
微信配置
# weixin
weixin.app.id = wxdaa8c45050e1968c
weixin.app.secret = cf958a9dd8882631b8c5b6beb2d19a64
任务调度配置
启动后自动执行任务调度
# job
job.autoStartup=true
工作流配置
# Activiti
activiti.dd.todo.open=N
activiti.dd.process.open = N
数据库配置
注意jndiName
的配置需与tomcat中保持一致
# db
db.jndiName=java:comp/env/jdbc/lcp_db
# db.type property is used for activiti
db.type=mysql
#db.type=oracle
#db.type=mysql
#db.type=hana
mybatis.identity=JDBC
#mybatis.identity=SEQUENCE
分布式主键
在正式项目中需配置为分配的主键区间
# snow generate Id
snow.workerId=0
snow.datacenterId=0
Redis
默认未使用集群。可添加访问密码保证缓存不被其它应用干扰
# redis
redis.sentinel=\
10.86.20.183:26379,\
10.86.20.184:26379
# if redis.useSentinel is true, then redis.ip and redis.port is useless
# this value should always be true except local dev test
redis.useSentinel=false
redis.ip=localhost
redis.port=6379
redis.db=10
redis.password=
redis.queue.retry.times = 5
消息队列
# rabbitmq intergration
rabbit.mq.open=false
rabbit.mq.host=172.16.20.121
rabbit.mq.port=5672
rabbit.mq.username=fsl
rabbit.mq.password=fsl
rabbit.mq.exchange=exchange.topic.sit
rabbit.mq.queue=queue.ams.sit
rabbit.mq.queue.concurrency=10
单点配置
可删除默认配置,使用本地登录
# cas intergration
cas.service=http://localhost:8080/applicationTemplete/login/cas
cas.ssoserver.url=http://172.16.20.124:8080/cas
cas.ssoserver.loginurl=http://172.16.20.124:8080/cas/login
cas.ssoserver.logouturl=http://172.16.20.124:8080/cas/logout?service=http://localhost:8080/applicationTemplete
服务目录
# ldap intergration
ldap.server.url=ldap://localhost:389/
ldap.conn.userDn=cn=Manager,dc=hand,dc=com
ldap.conn.password=secret
ldap.user.search.base=dc=hand,dc=com
ldap.user.search.filter=(uid={0})
文件存储
# FastDFS intergration
#fastdfs.connect_timeout_in_seconds = 5
#fastdfs.network_timeout_in_seconds = 30
#fastdfs.charset = UTF-8
#fastdfs.http_anti_steal_token = false
#fastdfs.http_secret_key = FastDFS1234567890
#fastdfs.http_tracker_http_port = 80
fastdfs.tracker_servers = 172.16.20.147:22122
fastdfs.nginx.url=http://172.16.20.148:6001/
门户集成
# portal address
portal.address=http://172.16.20.119/portal/
portal.token.url=http://172.16.20.119/portal/api/public/lcp/restful/get_token?clientId=82c15660e444467b9cb78578c6864b04&clientSecret=a4faf06c-7bab-4a99-a144-034358fafc9f
网关集成
gateway.num.retry = 1
组件配置
当前平台存在30个组件配置文件,清单如下
配置文件名称 | 模块名称 | 项目覆盖 |
---|---|---|
Spring根容器注册对象 | ||
applicationContext.xml | 公共对象注册 | |
applicationContext-ext.xml | 扩展对象注册 | |
applicationContext-beans.xml | 项目对象注册 | 是 |
Mvc子容器注册对象 | ||
appServlet/servlet-context.xml | 公共对象注册 | |
appServlet/controllers.xml | 控制器对象注册 | |
接口认证管理 | ||
applicationContext-gateway.xml | 网关设置 | |
oauth2Security-gateway.xml | 网关安全设置 | |
applicationContext-oauth2.xml | OAuth2设置 | |
oauth2Security.xml | OAuth2安全认证 | |
applicationContext-cxf.xml | CXF设置 | |
cxfSecurity.xml | CXF安全认证 | |
cxf-beans-demo.xml | CXF使用样例 | |
用户认证管理 | ||
applicationContext-security.xml | 登录开关 | 是 |
casSecurity.xml | 单点认证 | |
standardSecurity.xml | 标准认证 | |
standardSecurity-LDAP.xml | 基于目录服务的标准认证 | |
通知管理 | ||
applicationContext-msg.xml | 消息管理开关(始终指向Redis) | |
message/rabbitmq.xml | RabbitMQ消息配置(废弃) | |
message/redis.xml | Redis消息管理 | |
applicationContext-nofify.xml | 通知管理 | |
applicationContext-mail.xml | 邮件管理 | |
applicationContext-rabbitmq.xml | 队列管理 | |
applicationContext-rabbitmq-customer.xml | 消费者个性化配置 | 是 |
工作流 | ||
applicationContext-activiti.xml | 工作流管理 | |
appServlet/servlet-activiti.xml | 工作流Web应用管理 | |
其它模块 | ||
applicationContext-apollo.xml | Apollo配置 | |
applicationContext-db.xml | 数据库连接 | 是 |
applicationContext-job.xml | 调度管理 | |
applicationContext-redis.xml | 缓存配置 | |
applicationContext-websocket.xml | webSocket配置 |
项目菜单
最多支持四级菜单。项目标准菜单如下
一级菜单 | 二级菜单 | 三级菜单 | 备注 | 原菜单 |
---|---|---|---|---|
业务担当使用 | ||||
业务办理 | 协同管理 | 我待办的流程 | 等待我办理的工作流节点信息 | 工作流/我的待办列表 |
业务办理 | 协同管理 | 抄送我的流程 | 抄送我知晓的工作流节点信息 | 工作流/我的抄送流程 |
业务办理 | 协同管理 | 我发起的流程 | 我完成发起的工作流节点信息 | 工作流/我发起的流程 |
业务办理 | 协同管理 | 我参与的流程 | 我完成办理的工作流节点信息 | 工作流/我参与的流程 |
业务办理 | 协同管理 | 自动转交配置 | 将规定时间内的所有流程任务转交其它人处理 | 工作流/自动转交配置 |
报表管理 | 报表管理 | 业务系统报表展示菜单 | ||
配置管理 | 配置管理 | 业务系统配置设置菜单 | ||
系统管理员使用 | ||||
业务办理 | 协同管理 | 所有待办的流程 | 获取系统所有的待办节点信息 | 流程管理/待办事项(管理员) |
业务办理 | 协同管理 | 所有的流程 | 获取系统所有的工作流节点信息 | |
系统管理 | 账户管理 | 账户管理 | 管理系统的登录账户信息,为账户分配角色与权限 | 同运维管理/账户管理 |
系统管理 | 账户管理 | 角色管理 | 管理系统的角色信息 | 同运维管理/角色管理 |
系统管理 | 账户管理 | 默认角色配置 | 为岗位设定默认的角色 | 同运维管理/默认角色配置 |
系统管理 | 功能管理 | 功能分配 | 为角色分配系统功能 | 同系统管理/同运维管理/功能分配 |
系统管理 | 流程管理 | 职能主担配置 | 配置各部门职能主担人员 | 同运维管理/流程管理 |
系统管理 | 流程管理 | 职能主担报表 | 集中展示系统配置的所有部门职能主担 | 同运维管理/流程管理 |
运维部门使用 |