- 博客(27)
- 资源 (1)
- 收藏
- 关注
原创 如何显示IntelliJ IDEA工具的Run Dashboard功能
从 JetBrains released IntelliJ IDEA 2017.2.1 版本之后,新出的功能Run Dashboard,它能非常方便的提供开发人员查看本地springboot服务运行的一些参数,功能相当优秀。但IDEA默认不显示此功能,可以通过下面的方式来打开它点击IDEA上面工具栏View—Tool Windows—Run Dashboard 即可打开界面如果Tool Windows的子选项里没有Run Dashboard,可以在工程目录下找.idea文件夹下的workspace
2021-04-30 15:04:47
197
1
原创 基于SpringBoot的跨域解决方案-CORS
什么是CORSCORS是一个W3C标准,全称是"跨域资源共享”(Cross-origin resource sharing)。它允许浏览器向跨源(协议 + 域名 + 端口)服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。CORS需要浏览器和服务器同时支持。它的通信过程,都是浏览器自动完成,不需要用户参与。浏览器做了什么浏览器将CORS请求分成两类:简单请求(simple request)和非简单请求(not-so-simple request)。浏览器发出CORS
2021-01-07 10:23:42
207
1
原创 Tomcat 启动日志乱码
场景再现修改后打开logging.propertiesvi tomcat/conf/logging.properties修改java.util.logging.ConsoleHandler.encoding = utf-8>>>java.util.logging.ConsoleHandler.encoding = GBK
2020-09-14 10:58:09
234
原创 Git回滚远程分支
本地代码回滚到上一版本(或者指定版本)git reset --hard HEAD~1加入-f参数,强制提交,远程端将强制跟新到reset版本git push -f origin master
2020-09-03 10:01:16
411
原创 Nginx locaion配置指令介绍
概述location配置指令的功能是用来匹配不同的url请求,进而对请求做不同的处理和响应location匹配参数参数解释空location后没有参数直接跟着URI,表示前缀匹配,代表跟请求中的URI从头开始匹配。~执行一个正则匹配,区分大小写。~*执行一个正则匹配,不区分大小写。^~普通字符匹配,多用来匹配目录。=执行普通字符精确匹配。@“@” 定义一个命名的 location,@定义的locaiton名字一般用在内部定向,例如error
2020-06-13 16:34:32
176
原创 Nginx 配置详解
配置文件结构#全局配置events { #events配置}http { #http块 server { #server块 location [PATTERN] { #location块 } location [PATTERN] { } } server { }}全局配置:配置影响nginx全局的指令。包括运行nginx服务器的用户组,ngi
2020-06-13 16:22:54
348
原创 Linux运行jar包
同步运行java -jar demo.jar --server.port=8080执行后窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口退出程序后台运行java -jar demo.jar --server.port=8080 &执行后窗口不被锁定,但是当窗口关闭时,程序中止运行不中断运行#缺省执行(执行日志输出到nohup.out的文件中)nohup java -jar demo.jar --server.port=8080 &#自定义日志文件执行noh
2020-06-13 15:08:57
175
原创 运行和控制Nginx
Nginx命令参数# 当前位置[root@localhost sbin]# pwd/usr/local/nginx/nginx-1.4.2/sbin# 缺省的方式启动 Nginx./nginx# 为 Nginx 指定一个配置文件,来代替缺省的./nginx -c </path/nginx.cnof># 不运行,仅测试配置文件./nginx -t# 显示 nginx 的版本./nginx -v# 显示 nginx 的版本,编译器版本和配置参数./nginx -V使用信
2020-06-11 08:21:24
434
原创 Nginx安装
编译环境准备ubuntuapt-get install build-essentialapt-get install libtoolCentOS#安装makeyum -y install gcc automake autoconf libtool make#安装g++yum install gcc gcc-c++#安装PCRE库yum install -y pcre pcre-devel#安装zlib库yum install -y zlib zlib-devel##也可一步完成
2020-06-10 19:56:50
123
原创 CentOS 7防火墙管理
防火墙基本操作#查看防火墙状态firewall-cmd --state#打开防火墙systemctl start firewalld#停止防火墙systemctl stop firewalld防火墙开机启动#设置开机自启systemctl enable firewalld#禁止开机自启systemctl disable firewalld#查看是否为开机自启systemctl is-enabled firewalld防火墙端口操作#查看当前防火墙开放的端口firewall
2020-06-10 08:27:43
112
原创 CentOS 7 下 ifconfig command not found
报错内容[root@localhost ~]# ifconfig-bash: ifconfig: command not found查看ifconfig命令是否存在如果ifconfig命令存在,查看环境变量设置不存在则直接安装工具包[root@localhost ~]# yum install net-tools
2020-06-07 17:54:53
273
原创 Centos 7 安装修改yum数据源(使用aliyun数据源)
备份数据源mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak下载aliyun数据源wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repowget指令不存在[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo h
2020-06-07 17:33:55
800
原创 搭建otter水獭-Canal访问数据库权限问题
异常信息pid:1 nid:1 exception:canal:test_canal:com.alibaba.otter.canal.parse.exception.CanalParseException: command : 'show master status' has an error! pls check. you need (at least one of) the SUPER,REPLICATION CLIENT privilege(s) for this operation解决创建用
2020-05-29 17:05:12
1138
原创 解决Mysql用户无Grant权限
修改配置参数vi /etc/my.cnf[mysqld] 下面追加skip-grant-tables配置# For advice on how to change settings please see# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html[mysqld]skip-grant-tables## Remove leading # and set to the amount of
2020-05-29 16:40:11
1556
原创 修改Mysql数据库默认字符集
查询当前字符集mysql> show variables like 'character%';+--------------------------+----------------------------+| Variable_name | Value |+--------------------------+----------------------------+| character_set_client | u
2020-05-29 15:47:47
470
原创 JUC并发容器类
ArrayListArrayList是一个可变长度的数组,构造时可以指定一个数组初始长度,不指定则默认为0扩容机制扩容过程创建一个新的数组,长度为newCapacity把旧的数组数据elementData拷贝到新数组elementData = Arrays.copyOf(elementData, newCapacity);扩容算法ArrayList第一次执行添加操作...
2020-03-20 17:17:20
159
原创 ReadWriteLock使用及抢锁原理
概述概念维护一对关联锁,一个只能用来读操作,一个只能用来写操作;读锁可以由多个读线程共同持有(共享锁),写锁是排他的(独享锁)。同一时间,两把锁不能被不同线程持有使用场景适合读取操作多于写入操作的场景,改进互斥锁的性能,比如:集合的并发线程安全性改造、缓存组件。为什么读的时候还需要加锁?当写的操作为需要保证原子性的多步操作时,此时如果只是在写上加锁而未在读上加锁,...
2020-03-20 17:11:58
408
原创 Lock接口原理及使用总结
Lock接口void lock()如果锁被占用则会一直等待,直到其他线程释放锁,当前线程获取到锁为止示例代码:package com.hzw.subject1.lock;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class LockDe...
2020-03-20 17:08:43
535
原创 Synchronized从使用到原理
概述使用:用于修饰实例方法、静态方法时,隐式指定锁对象;用于代码块时,显示指定锁对象作用域:对象锁、类锁、分布式锁特性:可重入、独享、悲观锁锁优化:锁消除如何记录加锁状态默认情况下JVM锁会经历:未锁定 -> 偏向锁 -> 轻量级锁 -> 重量级锁 这四个状态对象在堆里面是如何存储的?什么是Mark Word加锁过程偏向锁在JDK6以后,默认已将开启...
2020-03-20 17:05:38
111
原创 Java中锁的概念
Java中锁的概念**自旋锁:**是指当一个线程在获取锁的时候,如果锁已经被其他线程获取,那么该线程将循环等待 ,然后不断的判断锁是否能够被成功获取,知道获取到锁才会退出循环。**乐观锁:**假定所有操作都没有冲突,在修改数据时如果发现数据和之前获取的不一致,则先读取最新数据然后重试修改**悲观锁:**假定所有操作都会发生并发冲突,同步所有对数据的相关操作,从读数据就开始上锁。...
2020-03-20 16:59:01
161
原创 Atomic原子操作类
Atomic*Atomicboolean:原子更新布尔类型AtomicInteget :原子更新整形AtomicLong:原子更新长整型AtomicReference:原子更新引用类型AtomicStampedReference:原子更新带有版本号的引用类型(可解决ABA问题)AtomicMarkableReference:原子更新带有标记位的引用类型(可解决ABA问题)下面以Ato...
2020-03-20 16:56:29
168
原创 CAS的三个问题
CAS的三个问题循环+CAS,自旋的实现让所有线程都处于高频运行,争抢CPU执行时间的状态。如果操作长时间不成功,会带来很大的CPU资源消耗针对单个变量的操作,不能用于多个变量来实现原子操作ABA问题ABA问题由于CAS操作进行比较替换时只比较了旧值是否相等,比较不够充分导致操作依旧是不够安全的thread1、thread2同时读取到i=0thread1、thread2都要执行...
2020-03-20 16:54:05
187
原创 线程安全之原子操作
什么是原子操作原子操作可以是一个步骤,也可以是多个步骤,但是其顺序不可以被打乱,也不可以被切割只执行其中的一部分(不可中断性)。将整个操作视作一个整体,资源在该次操作中保持一致,这是原子性的核心特征下面我们看一段代码:package com.hzw;public class Counter { volatile int i = 0; public void add()...
2020-03-06 09:01:45
235
原创 优雅的线程中止
不正确的线程中止-StopStop:中止线程,并清除监控器锁的信息,但是可能导致线程安全问题,JDK不建议使用线程安全问题:当子线程未执行完时在主线程使用stop终止了子线程会导致线程安全问题代码示例:package com.hzw;public class Demo2 { public static void main(String[] args) throws Interr...
2020-03-05 10:51:05
101
原创 便携的文件操作-Files
便携的文件操作-Files分隔符在Windows系统中使用反斜杠 ‘’ 或者斜杠 '/'来当作路径的分隔符,但是使用反斜杠需要注意: 单个反斜杠代表转义字符,所以在使用反斜杠充当路径的分隔符时需要成对出现File file1 = new File("E:\\aaa\\1.java");File file2 = new File("E:/aaa/1.java");在Linux,U...
2020-03-04 15:26:56
349
原创 线程池应用
作用为了方便控制线程的数量线程池的原理线程池管理器:用于创建并管理线程池,包括创建线程池,销毁线程池,添加新任务工作线程:线程池中线程,在没有任务的时候处于等待状态,可以循环的执行任务任务接口:每个任务必须实现的借口,以提供工作仙尘调度任务的执行,它主要规定了任务的入口,任务执行完成后的首位工作,任务的执行状态等任务队列:用于存放没有处理的任务,提供一种缓存机制线程池APIE...
2020-03-04 07:11:12
91
原创 Java内存模型
定义Java内存模型不是JVM运行时数据区,Java内存模型是由Java语言规范提出,用来描述Java多线程程序在执行时的一些规则,JVM运行时数据区是由Java虚拟机规范提出,用来描述JVM虚拟机的特性。解决什么问题所见非所得无法肉眼去检测程序的准确性不同的运行平台有不同的表现错误很难重新package com.hzw.subject1;public class DemoV...
2020-03-03 17:47:49
95
CentOS repo文件.zip
2020-06-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人