FAQ: 1、Swagger页面访问路径 http://localhost:8080/swagger-ui.html 2、Mybatis自动生成的映射文件 查询text类型的字段信息时,使用主键查询,或者单独使用withBlobs查询 插入和更新都包含 3、测试环境服务启动:nohup java -jar openplatform-0.0.1-SNAPSHOT.jar & nohup //不挂断运行命令 输出一般重定向到当前目录下的nohup.out文件中 $ //在后台运行命令 4、脚本启动服务 ./server.sh stop|start 5、redis-cli连接测试环境redis服务 在命令目录下进入到cmd执行该命令连接测试环境的redis服务redis-cli -h 10.0.0.112 -p 6379 -a crs-pf25dj24:Jt3d#%^5Ed redis-cli> config set notify-keyspace-events Egx redis服务配置完成后,需要在代码中添加spring session对redis的自动配置信息NO_OP 不然服务启动还是报错 6、后台管理系统页面登录地址 http://10.0.0.222:8284/#/ 7、使用日志框架的日志文件,去除nohup的日志输出 nohup java -jar openplatform-back-0.0.1-SNAPSHOT.jar >> /dev/null & 8、日志相关的配置信息 如果你的终端支持ANSI,设置彩色输出会让日志更具可读性。通过在application.properties中设置spring.output.ansi.enabled参数来支持。 NEVER:禁用ANSI-colored输出(默认项) DETECT:会检查终端是否支持ANSI,是的话就采用彩色输出(推荐项) ALWAYS:总是使用ANSI-colored格式输出,若终端不支持的时候,会有很多干扰信息,不推荐使用 9、测试环境启动nginx cd /usr/local/nginx/conf /usr/local/nginx/sbin/nginx -启动服务 /usr/local/nginx/sbin/nginx -s stop -停止服务 /usr/local/nginx/sbin/nginx -h 命令帮助 /usr/local/nginx/sbin/nginx -t 验证配置文件 vim /usr/local/nginx/conf/nginx.conf nginx的配置文件 10、日志文件打印修改,调整到logs目录下,原来的日志文件不在做日志信息记录 nohup命令的标准输出导向/dev/null,不做保存。 单个日志文件最大在10Mb,超出后会自动切换文件名称 11、du -sh查看日志文件大小 12、nginx日志 log_format格式变量: $remote_addr #记录访问网站的客户端地址 $remote_user #远程客户端用户名 $time_local #记录访问时间与时区 $request #用户的http请求起始行信息 $status #http状态码,记录请求返回的状态码,例如:200、301、404等 $body_bytes_sent #服务器发送给客户端的响应body字节数 $http_referer #记录此次请求是从哪个连接访问过来的,可以根据该参数进行防盗链设置。 $http_user_agent #记录客户端访问信息,例如:浏览器、手机客户端等 $http_x_forwarded_for #当前端有代理服务器时,设置web节点记录客户端地址的配置,此参数生效的前提是代理服务器也要进行相关的x_forwarded_for设置 13、虚拟机启动参数添加--简单介绍 -Djava.awt.headless=true 在使用Java处理图形应用时,经常有人推荐设置 -Djava.awt.headless=true,具体含义和效果查了一下,记录在这里分享 Headless模式是系统的一种配置模式。在该模式下,系统缺少了显示设备、键盘或鼠标。 Headless模式虽然不是我们愿意见到的,但事实上我们却常常需要在该模式下工作,尤其是服务器端程序开发者。因为服务器(如提供Web服务的主机)往往可能缺少前述设备,但又需要使用他们提供的功能,生成相应的数据,以提供给客户端(如浏览器所在的配有相关的显示设备、键盘和鼠标的主机)。 一般是在程序开始激活headless模式,告诉程序,现在你要工作在Headless mo ... -Djava.net.preferIPv4Stack=true 让程序只支持IPV4的使用 ##debug模式启动 -XDebug 启用调试。 -Xnoagent 禁用默认sun.tools.debug调试器。 -Djava.compiler=NONE 禁止 JIT 编译器的加载。 -Xrunjdwp 加载JDWP的JPDA参考执行实例 dt_socket 套接字传输。 dt_shmem 共享内存传输,仅限于 Windows。 server=y/n VM 是否需要作为调试服务器执行。 address=3999 调试服务器的端口号,客户端用来连接服务器的端口号。 suspend=y/n 是否在调试客户端建立连接之后启动 VM 。 ##jmx模式启动 -Dcom.sun.management.jmxremote.port=1099 开放端口 -Dcom.sun.management.jmxremote.ssl=false JMX的SSL连接打开 -Dcom.sun.management.jmxremote.authenticate=false 不做权限验证 整个堆大小=年轻代+年老代+持久代 正常的管理参数 -server -Xmx2g --最大可用内存 -Xms2g --初始化堆大小 -Xmn256m --newSize 持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8 -XX:PermSize=128m -Xss256k 设置每个线程的堆栈大小。JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。更具应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。 -XX:+DisableExplicitGC 禁止调用System.gc();但jvm的gc仍然有效 -XX:+UseConcMarkSweepGC 对老生代采用并发标记交换算法进行GC -XX:+CMSParallelRemarkEnabled 是否启用并行 -XX:+UseCMSCompactAtFullCollection 打开对年老代的压缩。可能会影响性能,但是可以消除碎片 -XX:LargePageSizeInBytes=128m 设置用于Java堆的大页面尺寸 -XX:+UseFastAccessorMethods 优化原始类型的getter方法性能 -XX:+UseCMSInitiatingOccupancyOnly CMS有动态检查机制。 CMS会根据历史记录,预测老年代还需要多久填满及进行一次回收所需要的时间。 在老年代空间用完之前,CMS可以根据自己的预测自动执行垃圾回收。 这个特性可以使用参数UseCMSInitiatingOccupancyOnly来关闭。 -XX:CMSInitiatingOccupancyFraction=70 CMS生成占用百分比以启动CMS收集周期 -是标准参数,所有的vm实现都必须是实现这些参数的功能,而且向后 -X是非标准参数,默认所有jvm实现这些参数,但是并不保证所有的jvm实现都满足,且不保证向后兼容 -XX非Stable参数,此类参数各个jvm实现会有所不同,将来可能会随时取消 14、跨服务器拷贝文件 迁入服务器地址 迁入服务器文件放置路径 scp -r reinsure-apache-tomcat-7.0.64 jboss@10.100.8.7:/app/java/reinsure-apache-tomcat 迁出服务名称 迁入服务器用户名(最好不要用root) uat 10.100.8.227 jboss kmtA5OrSgij76fw scp -r back jboss@10.100.8.227:/app/java/ 15、本地环境启动添加激活参数 在项目主类中运行项目时,需要做运行时配置信息-run configurations中添加spring-boot:run -Drun.profiles=test Maven启动指定Profile通过-P,如mvn spring-boot:run -Ptest,但这是Maven的Profile。 如果要指定spring-boot的spring.profiles.active,则必须使用mvn spring-boot:run -Drun.profiles=test 如果使用命令行直接运行jar文件,则使用java -jar -Dspring.profiles.active=test demo-0.0.1-SNAPSHOT.jar 如果使用开发工具,运行Application.java文件启动,则增加参数--spring.profiles.active=test