ssh免密登录
Jenkins部署Spring Boot
持续集成是什么?
互联网软件的开发和发布,已经形成了一套标准流程,最重要的组成部分就是持续集成(Continuous integration,简称CI)
持续集成的目的
让产品可以快速迭代,同时还能保持高质量
Jenkins是什么?
Jenkins是一个用Java编写的开源的持续集成工具,因此安装Jenkins必须有Java运行环境
Jenkins安装
官网下载Jenkins安装包,按照官网提示进行安装
安装常用插件
创建密码
注意:需要防火墙打开8080端口,Jenkins默认使用8080端口
Jenkins的配置
全局工具配置
- 配置jdk
- 配置maven
插件安装
Jenkins有很多插件已经被安装,其中Git plugin和Maven Integration plugin,publish over SSH是部署Spring Boot项目必备的插件
配置Credentials
配置成功后可以用ssh协议拉取git上的代码
mybatis Integer类型,0的问题
问题:在mybatis中,0被认为是空字符串
解决:普通判断1. != null 2. != ‘’。当类型为Integer类型时只进行方式1的判断
逻辑备份mysql数据库
数据安全高于一切
有时我们为了节省开支,并不会购买云数据库而是选择自建数据库,这时数据安全就极为重要。数据备份是保证安全最有效的方式
编写数据备份脚本
1 | # /bin/bash |
利用cron定时执行
利用cron服务定时执行数据备份脚本。该脚本会自动删除过期的sql文件
例如 每天12:50定时执行mysqlback.sh脚本:
1 | 50 12 * * * /root/mysqlback.sh |
linux导入导出mysql数据
mac系统更新后git不可用
mysql自定义sequence
什么是sequence
序列,在Oracle数据库中,什么是序列呢?它的用途是什么?序列(SEQUENCE)其实是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。其主要的用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值。
mysql没有内置sequence,需要自己实现
创建sequence表
1 | CREATE TABLE sequence ( |
获取当前序列值
1 | CREATE FUNCTION currval (seq_name VARCHAR(50)) |
获取下一个序列
1 | CREATE FUNCTION nextval (seq_name VARCHAR(50)) |
重置序列值
1 | CREATE FUNCTION setval (seq_name VARCHAR(50), value INTEGER) |
应用
1 | // 在序列表中新建一条序列(参数依次为:序列名称、序列开始值、序列递增步长) |
socket实现服务端客户端通讯
server服务端
主线程
构建页面
创建serverSocket
添加send按钮的点击事件
子线程
死循环接收消息
服务端代码如下:
1 | /** |
client客户端
主线程
构建页面
连接serverSocket
添加send按钮的监听事件
子线程
死循环接收消息
客户端代码如下:
1 | /** |
Spring Boot多环境配置
我们在开发Spring Boot应用时,通常同一套程序会被应用和安装到几个不同的环境,比如:开发、测试、生产等。其中每个环境的数据库地址、服务器端口等等配置都会不同,如果在为不同环境打包时都要频繁修改配置文件的话,那必将是个非常繁琐且容易发生错误的事。
对于多环境的配置,各种项目构建工具或是框架的基本思路是一致的,通过配置多份不同环境的配置文件,再通过打包命令指定需要打包的内容之后进行区分打包,Spring Boot也不例外,或者说更加简单。
在Spring Boot中多环境配置文件名需要满足 application-{profile}.properties
的格式,其中{profile}
对应你的环境标识,比如:
1 | application-dev.properties:开发环境 |
至于哪个具体的配置文件会被加载,需要在application.properties
文件中通过spring.profiles.active
属性来设置,其值对应{profile}
值。
如:spring.profiles.active=test
就会加载application-test.properties
配置文件内容
下面,以不同环境配置不同的服务端口为例,进行样例实验。
针对各环境新建不同的配置文件application-dev.properties
、application-test.properties
、application-prod.properties
测试不同配置的加载:
执行java -jar xxx.jar --spring.profiles.active=prod
也就是生产环境的配置(prod)
按照上面的实验,可以如下总结多环境的配置思路:
application.properties
中配置通用内容,并设置spring.profiles.active=dev
,以开发环境为默认配置application-{profile}.properties
中配置各个环境不同的内容
通过命令行方式去激活不同环境的配置
转载自程序猿DD-翟永超