一、SpringBoot项目打jar过程: nautilus--Linux启动文件浏览器
1. mvn clean
2. mvn install
//在打包的位置找到jar包,并移到服务器上
3. java -jar xxx.jar //启动jar包项目,但当命令窗口关闭,项目便停止运行
4. 后台运行的方法:
vi start.sh //创建一个文件
添加内容:java -jar xxx.jar
:wq! //保存退出
chmod 777 start.sh //给文件添加权限
nohup ./start.sh & //后台运行启动即可 nohup表示永久运行,&表示后台运行
5.扩展的linux命令
ps -ef | grep bootdo //查看进程号
kill -s 9 进程号 //杀死指定进程号的进程
netstat -anp | grep 6002 //查看80端口
kill 端口号 //关闭sid的端口
cat start.sh //查看start.sh 文件的内容
centos虚拟机存在时间不准确,校准方法(必须可以访问外网才能有效同步):
rdate -t 60 -s stdtime.gov.hk
hwclock -w
6.查看缓存的命令
free -m
其中buff/cache项为缓存占用
清理缓存的命令
echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches
7.多配置文件启动命令
java -jar .\dolphin-eureka-1.0-SNAPSHOT.jar --spring.profiles.active=node1
二、Jenkins
1. rpm -e jenkins 卸载jenkins
2. rpm -ql jenkins 查看安装目录
3. find / -iname jenkins | xargs -n 1000 rm -rf 彻底删除残留文件
4. https://pkg.jenkins.io/redhat-stable/Jenkins rpm安装包下载路径
执行如下命令:
a. wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
b. rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
c. yum install jenkins
Jenkins遇到了java.awt.headless问题
yum install dejavu-sans-fonts
yum install fontconfig
三、Mysql宕机 权限命令(MySQL服务在启动的时候,不能创建pid文件)
1. mkdir -p /var/run/mysqld/
2. chown mysql.mysql /var/run/mysqld/
3. /etc/init.d/mysqld start
echo 1 > /proc/sys/vm/drop_caches 清理Linux缓存命令
cd /opt //我的目录是opt
mkdir swap //创建文件夹
cd swap //切换到文件夹下
dd if=/dev/zero of=swapfile bs=1M count=1024 //新建分区文件
mkswap swapfile
swapon swapfile
四、注解解释类学习
1. @Target:用于描述注解的使用范围
即:被描述的注解可以用在什么地方)注解(annotation)可被用于 packages、types(类、接口、枚举、 Annotation类型)、类型成员(方法、构造方法、成员变量、枚举值)、方法参数和本地变量(如循环变量、catch参 数)。在注解类型的声明中使用了target可更加明晰其修饰的目标。取值(ElementType)有:
ElementType.ANNOTATION_TYPE 可以应用于注释类型。
ElementType.CONSTRUCTOR 可以应用于构造函数。
ElementType.FIELD 可以应用于字段或属性。
ElementType.LOCAL_VARIABLE 可以应用于局部变量。
ElementType.METHOD 可以应用于方法级注释。
ElementType.PACKAGE 可以应用于包声明。
ElementType.PARAMETER 可以应用于方法的参数。
ElementType.TYPE 可以应用于类的任何元素。
2. @Retention:定义了该注解被保留的时间长短:
某些注解仅出现在源代码中,而被编译器丢弃;而另一些却被编译在class文件中;编译在class文件中的注解可能会被虚 拟机忽略,而另一些在class被装载时将被读取(请注意并不影响class的执行,因为注解与class在使用上是被分离的)。 使用这个meta-Annotation可以对注解的“生命周期”限制。作用:表示需要在什么级别保存该注释信息,用于描述注解的生 命周期(即:被描述的注解在什么范围内有 效)取值(RetentionPoicy)有:
1.SOURCE:在源文件中有效(即源文件保留)
2.CLASS:在class文件中有效(即class保留)
3.RUNTIME:在运行时有效(即运行时保留)
PS:注解只有一个成员时,按规范写成value(),当然不这么写不会报错。如果不设置默认值,那么使用注解时必须要传 值。只有类可以被注解,因为接口或者抽象类并不能被注解。
五、zuul路由和过滤
filterType:返回一个字符串代表过滤器的类型,在zuul中定义了四种不同生命周期的过滤器类型,具体如下:
pre:路由之前
routing:路由之时
post: 路由之后
error:发送错误调用
filterOrder:过滤的顺序
shouldFilter:这里可以写逻辑判断,是否要过滤,本文true,永远过滤。
run:过滤器的具体逻辑。可用很复杂,包括查sql,nosql去判断该请求到底有没有权限访问。
六、swaggeer注解说明
swagger通过注解表明该接口会生成文档,包括接口名、请求方法、参数、返回信息的等等。
@Api:修饰整个类,描述Controller的作用
@ApiOperation(value="更新信息", notes="根据url的id来指定更新用户信息"):描述一个类的一个方法,或者说一个接口
@ApiParam:单个参数描述
@ApiModel:用对象来接收参数
@ApiProperty:用对象接收参数时,描述对象的一个字段
@ApiResponse:HTTP响应其中1个描述
@ApiResponses:HTTP响应整体描述
@ApiIgnore:使用该注解忽略这个API
@ApiError :发生错误返回的信息
@ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Integer", paramType = "path"):一个 请求参数
@ApiImplicitParams:多个请求参数