2021年3月

Lombok介绍

Lombok 是一种 Java 实用工具,可用来帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJO)。它通过注释实现这一目的。通过在开发环境中实现 Lombok,开发人员可以节省构建诸如 hashCode() 和 equals() 这样的方法以及以往用来分类各种 accessor 和 mutator 的大量时间。

SpringToolSuite4安装Lombok

下载 lombok.jar

可以通过下面地址进行下载:

https://repo1.maven.org/maven2/org/projectlombok/lombok/1.18.18/lombok-1.18.18.jar

拷贝lombok.jar至STS目录

目录:/Applications/SpringToolSuite4.app/Contents/MacOS

接着需要将lombok-1.18.18.jar重命名为lombok.jar
(下面截图名称没有改,实际操作时,请将lombok-1.18.18.jar改为lombok.jar)

7c2yiab8hz4.png

在STS路径运行命令

cd /Applications/SpringToolSuite4.app/Contents/MacOS

java -jar lombok.jar

- 阅读剩余部分 -

Linux下压缩、解压war文件包。
首先系统中必须安装有JDK,如果没有请安装:

apt-get install default-jdk

jar 命令说明

jar {ctxu}[vfm0M] [jar-文件] [manifest-文件] [-C 目录] 文件名 ...

其中{ctxu}是jar命令的子命令,每次jar命令中只能包含c、t、x、u中的一个,不可同时存在,因为不能同时压缩与解压缩。

  • -c:创建新的 JAR 文件包
  • -t:列出 JAR 文件包的内容列表
  • -x:展开 JAR 文件包的指定文件或者所有文件
  • -u:更新已存在的 JAR 文件包 (添加文件到 JAR 文件包中)
  • -f:定 JAR 文件名,通常这个参数是必须的。注意:在 f 之后要立即接档名,不要再加参数!
  • -m:指定需要包含的 MANIFEST 清单文件
  • -0:只存储,不压缩,这样产生的 JAR 文件包会比不用该参数产生的体积大,但速度更快
  • -M:不产生所有项的清单(MANIFEST〕文件,此参数会忽略 -m 参数
  • [jar-文件] :需要生成、查看、更新或者解开的 JAR 文件包,它是 -f 参数的附属参数
  • [-C 目录] :表示转到指定目录下去执行这个 jar 命令的操作。它相当于先使用 cd 命令转该目录下再执行不带 -C 参数的 jar 命令,它只能在创建和更新 JAR 文件包的时候可用
  • 文件名 ... :指定一个文件/目录列表,这些文件/目录就是要添加到 JAR 文件包中的文件/目录。如果指定了目录,那么 jar 命令打包的时候会自动把该目录中的所有文件和子目录打入包中。

实战:添加压缩包操作

jar -cvfM0 your_war.war ./

# 参数说明
# -c: 表示创建war包
# -v: 显示过程信息
# -f: 指定 JAR 文件名,通常这个参数是必须的
# -M: 不产生所有项的清单(MANIFEST〕文件,此参数会忽略 -m 参数
# -0: 这个是阿拉伯数字,只打包不压缩的意思

实战:解压war操作

jar -xvf your_war.war

使用Linux作为服务器,很多时候会用到计划任务。
下面介绍下Cron计划任务的使用说明。
首先确认是否安装了Cron(如果系统已有,请跳过此步):

apt-get install cron

crontab命令常用参数

crontab   -l   #查看当前用户下的cron任务
crontab -e   #/编辑当前用户的定时任务
crontab -u  linuxso  -e   #/编辑用户linuxso的定时任务

添加要执行的计划任务

编辑文件/etc/crontab

vim /etc/crontab

语法格式说明

格式:m h dom mon dow user command

  • m: 表示分钟1~59 每分钟用或者 /1表示
  • h: 表示小时1~23(0表示0点)
  • dom: 表示日期1~31
  • mon: 表示月份1~12
  • dow: 表示星期0~6(0表示星期天)
  • user: 表示执行命令的用户
  • command: 表示具体命令

特殊符号说明

  • *: 表示任何时刻
  • ,: 表示分割
  • -: 表示一个段
  • /n:表示每隔单位执行一次(如第二段里,*/1, 就表示每隔1个小时执行一次命令。也可以写成1-23/1)

实战

00 8,12,16 * * * /data/app/scripts/monitor/df.sh
30 2 * * * /data/app/scripts/hotbackup/hot_database_backup.sh
10 8,12,16 * * * /data/app/scripts/monitor/check_ind_unusable.sh
10 8,12,16 * * * /data/app/scripts/monitor/check_maxfilesize.sh
10 8,12,16 * * * /data/app/scripts/monitor/check_objectsize.sh
 
43 21 * * *                              #每天21:43 执行
15 05 * * *                          #每天05:15 执行
0 17 * * *                               #每天17:00 执行
0 17 * * 1                               #每周一的 17:00 执行
0,10 17 * * 0,2,3                      #每周日,周二,周三的 17:00和 17:10 执行
0-10 17 1 * *                           #毎月1日从 17:00到7:10 毎隔1分钟 执行
0 0 1,15 * 1                             #毎月1日和 15日和 一日的 0:00 执行
42 4 1 * *                            #毎月1日的 4:42分 执行
0 21 * * 1-6                         #周一到周六 21:00 执行
0,10,20,30,40,50 * * * *          #每隔10分 执行
*/10 * * * *                  #每隔10分 执行
* 1 * * *                    #从1:0到1:59 每隔1分钟 执行
0 1 * * *                    #1:00 执行
0 */1 * * *                  #毎时0分 每隔1小时 执行
0 * * * *                    #毎时0分 每隔1小时 执行
2 8-20/3 * * *                #8:02,11:02,14:02,17:02,20:02 执行
30 5 1,15 * *                  #1日 和 15日的 5:30 执行

Docker介绍

Docker是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

文档地址:https://docs.docker.com/

仓库地址:https://hub.docker.com/

Docker入门

基本概念

Docker基本组成:

Cover image for Getting Started with Docker for Developers

镜像 image

docker 镜像好比一个模板,可以通过这个目标创建容器服务。比如:nginx镜像 ===》run命令 ===》nginx01容器(提供服务)

容器 container

docker利用容器技术,独立运行一个或一组应用。容器是通过镜像创建的。

容器基本命令有:启动、停止、删除

仓库 repository

仓库是用来存放镜像的地方。

仓库可以分为:共有仓库、私有仓库。

Docker安装

Debian系统安装:

官方文档:https://docs.docker.com/engine/install/

# 卸载旧版本
apt-get remove docker docker-engine docker.io containerd runc

# 安装相关依赖和工具
apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release software-properties-common

# ######我们用阿里云替换官方###########
# 添加阿里云GPG key  https://mirrors.aliyun.com/docker-ce/linux/debian/
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/debian/gpg | apt-key add -
# 写入软件源信息
add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/debian $(lsb_release -cs) stable"

# ####默认使用官方源下载,####
# 添加Docker官方GPG key
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 写入软件源信息
echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
  $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null

# 安装Docker
apt-get update
apt-get install -y docker-ce docker-ce-cli containerd.io

# 配置镜像加速 可以在阿里云中的容器镜像服务下的镜像加速器替换"https://xxxxx.mirror.aliyuncs.com"
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxxxx.mirror.aliyuncs.com"]
}
EOF

# 重启docker
systemctl daemon-reload
systemctl restart docker

- 阅读剩余部分 -