只是一些建议性的东西,大家有什么好的想法,都可以提出来。
最好将系统的代码和自己的区分开来,自己的代码写在cn.gygxzc.envir.biz 目录下
一键生成数据库相关代码配置在cn.gygxzc.envir.config.orm 包下,请自行配置相关参数
项目采用Spring Cloud分布式解决方案。 目前系统中涉及到的知识点有 :
需要的可以去了解一下。
项目中缓存可以分成三类:
系统Spring session缓存,shiro缓存
获取当前登录用户信息 SessionUtils 工具类
升级框架的安全认证方式,改成jwt 和Spring session分布式方式认证。权限由网关统一认证。
已初步完成Spring session的分布式认证,下一步将移除shiro 依赖即权限认证。
这一点举一点应用:业务系统需要向前端或者用户发送消息,
只需要调用发送消息的sender即可。由消息中心把消息发送给前端用户。
但是因为授权中心使用shiro,导致客户端不能完全移除shiro依赖,但是只引用了shiro的核心包。
具体原因是:授权中心shiro在生成的session中放入了shiro包中的类实体对象,jdk序列化之后,在各自的业务系统中反序列化,如果不引入shiro核心包,将
导致jdk反序列化失败,导致各自业务系统无法获取到当前登录的用户信息。
有了配置中心的存在,可以将所有项目的公有和私有配置放到配置中心,而无需大量放到本地。
Jetty 更加轻量化,更符合Spring Cloud 分布式部署;当然,这个还需要验证和考量。
到目前为止,框架这部分基本上不会有太多更新。目前业务中需要的即时通信相关服务,会单独写一个即时通信服务。 业务系统通过rabbitmq 消息总线发送消息到 消息推送系统完成这方面的需求。后期会提供相关的接口包。
数据从后端返回前端,后端对重要数据进行对称加密,并实现签名,保证数据不会被中途拦截篡改; 数据从前端发送到后端,前端用公钥对数据进行加密,保证数据安全,不会被拦截,并且也需要实现签名,保证数据不被伪造。
运行任务 : task dockerBuilder。 特别注意在打包之前需要在idea 的命令行中登陆到镜像中心。 登陆命令为:docker login --username=gxzcalyqy registry.cn-qingdao.aliyuncs.com 密码为:docker20181018
如果一切没有问题,打包成功之后会自动上传到镜像中心。等待上传完成。出现如下提示说明上传完成:
BUILD SUCCESSFUL in 4m 10s
26 actionable tasks: 5 executed, 21 up-to-date
17:40:25: Task execution finished 'dockerBuilder'.
docker run -t --name NAME
-m568m --expose=PORT
-p PORT
:PORT
-e "EUREKA_INSTANCE_IP-ADDRESS=IP
" -e "SERVER_PORT=PORT
" IMAGE_NAME
以下片段位于zen-web.gradle ,修改其中的applicationName
task dockerBuilder(type: Docker) {
registry='registry.cn-qingdao.aliyuncs.com/gxzc-envir'
applicationName = 'fw'
tagVersion = jar.version
addFile("./build/libs/${jar.baseName}-${jar.version}.jar","app.jar")
entryPoint(["java","-Djava.security.egd=file:/dev/./urandom","-jar",'app.jar'])
exposePort(11000)
doFirst {
copy {
from jar
into stageDir
}
}
push = true
}
mysql 时区问题
-e TZ=Asis/Shanghai 生成容器的时候,指定时区
set global time_zone = '+8:00' 临时修改,重启后失效
8.0版本引入了一个新的系统权限 XA_RECOVER_ADMIN ,用于控制执行 XA RECOVER语句的权限。所有尝试执行 XA RECOVER 语句的非授权用户会引起报错。
MySQL 8.0 introduces a new system privilege XA_RECOVER_ADMIN which controls the capability to execute the statement XA RECOVER. An attempt to do XA RECOVER by a user who wasn’t granted the new system privilege XA_RECOVER_ADMIN will cause an error.