- 博客(54)
- 收藏
- 关注
原创 Linux简单shell脚本部署项目
也就是说如果加载的 application.yml 的内容标签与 bootstrap 的标签一致,application 也不会覆盖 bootstrap,而 application.yml 里面的内容可以动态替换。若application.yml 和bootstrap.yml 在同一目录下:bootstrap.yml 先加载 application.yml后加载。application.yml 可以用来定义应用级别的, 应用程序特有配置信息,可以用来配置后续各个模块中需使用的公共参数等。
2022-11-10 19:52:33
997
原创 服务器安装配置elasticsearch,kibana,IK分词器和拼音分词器,集群搭建教程
docker安装配置elasticsearch,kibana和IK分词器, 并用nginx配置IK远程词典
2022-08-09 10:51:21
1931
原创 Win10和Linux服务器的nacos集群搭建并使用Nginx反向代理(保姆级和避坑)
windows版nacos集群简易版搭建并用nginx配置负载均衡,Linux用docker搭建nacos集群
2022-07-26 20:57:04
1519
原创 npm install失败
重装了node和npm,降了版本也依旧无济于事也试了网上的方法清缓存npm cache clear --force移除代理npm config rm proxynpm config rm https-proxynpm i依旧执行报错PS G:\Aspire\code\mall\lifeweb9\vue> npm installnpm ERR! Unexpected token { in JSON at position 566392 while parsing near '
2022-05-25 17:11:45
201
原创 node.js降版本(保姆级和避坑)
1.先卸载原来的node找到原来的node,进行卸载2.使用nvm来管理node的版本1.从官网下载安装包 https://github.com/coreybutler/nvm-windows/releases,下载红框里面的那个2.将下载下来的压缩包进行解压(随便解压到任一你喜欢的位置),解压文件夹里面是一个.exe文件3.开始进行nvm安装:(1) 鼠标双击nvm-setup.exe文件,选择“我接受…”那一行,点击next(2)nvm的安装目录和node的安装目录看自己然后ne
2022-05-25 14:46:45
6761
5
原创 html的异步请求下载文件
用原生的异步请求/** * 原生异步 */ let xhr = new XMLHttpRequest(); xhr.open('POST', 'exportExcel.do', true); xhr.setRequestHeader("Content-Type", 'application/json;charset=utf-8'); xhr.responseType = 'blob'; xh
2022-05-20 10:19:05
445
原创 websocket无法通过注解方式注入bean的解决办法
在做一个小程序聊天时,用java后台搭建,websocket无法通过springboot的注解注入bean问题代码报错14:11:39.906 [http-nio-8181-exec-1] ERROR org.apache.tomcat.websocket.pojo.PojoEndpointBase - Failed to call onClose method of POJO end point for POJO of type [com.gdpu.middleware.websocket.Cha
2022-04-06 14:51:12
3674
原创 JDK1.8的Lambda表达式使用(一)
引言实际开发中,我们常要对集合进行转换,一个forEach()让这个变得繁杂,用了Lambda,直接一切简单了1. List转Map直接上代码 List<RedRecordDto> records = redRecordService.getRecords(); //List<RedRecordDto>根据日期合成--------------->Map<属性,对象> Map<Date, RedRecordDto>
2022-03-25 11:26:57
662
原创 SpringSecurity学习(二)
动态权限控制,RBAC权限模型架构设计RBAC(基于角色的权限控制)模型的核心是在用户和权限之间引入了角色的概念。取消了用户和权限的直接关联,改为通过用户关联角色、角色关联权限的方法来间接地赋予用户权限(如下图),从而达到用户和权限解耦的目的。RBAC由5个表组成1.权限表 新增/addMember tag = addMember/updateMember tag = updateMember2.角色表 新增Mayikt-adminMayikt-add3.角色权限表
2022-03-17 17:54:26
130
原创 SpringSecurity学习(一)
通过SpringSecurity的拦截http安全认证模式 设置为formlogin新建config.classSecurityConfigpackage com.example.tryingsecurity.config;import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;import org.springframework.secu
2022-03-15 22:54:33
363
原创 打包程序报程序包com.sun.istack.internal不存在
用了@NotNUlL直接在pom里添加<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <
2022-03-09 17:29:09
632
原创 Redis操作List
插入redis对list操作分为左和右两种redisTemplate.opsForList().leftPush()实际调用的是lPushreturn connection.lPush(rawKey, new byte[][]{rawValue});redisTemplate.opsForList().rightPush()调用的是rPush其实就是队列的左右lPush将数据添加到key对应的现有数据的左边,也就是头部rPush是将现有数据添加到现有数据的右边,也就是尾部,可以根据业务的
2022-03-02 16:51:51
5165
原创 Java中的比较器Comparator
排序规则升序:o1 - o2 ;降序:o2 - o1;三种实现方法1.最常用:直接new一个Comparator//降序优先队列PriorityQueue<Integer> q = new PriorityQueue<>(new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) {
2021-11-10 02:03:29
2770
原创 面试什么是死锁?怎么避免死锁?
你知道什么是死锁吗?多个进程可以竞争有限数量的资源。当一个进程申请资源时,如果这时没有可用资源,那么这个进程进入等待状态。有时,如果所申请的资源被其他等待进程占有,那么该等待进程有可能再也无法改变状态。这种情况成为死锁。就好比线程1占有线程A需要获取到资源B才能释放资源A的锁,而同时,线程2占有资源B需要在获取资源A才能释放资源B的锁,两个线程就会在一直等待。死锁的四个条件如果系统中以下四个条件同时成立,那么就能引起死锁:互斥:资源必须处于非共享模式,即一次只有一个进程可以使用。如果另一进程
2021-11-09 12:20:45
296
原创 TCP的三次握手和四次挥手
这里写目录标题TCP三次握手相关词TCP三次握手过程1.TCP三次握手理论背景2.为什么不是两次握手或四次握手?3.第三次握手中,如果客户端的ACK未送达服务器,会怎样?TCP四次挥手过程1.为什么不能把服务器发送的ACK和FIN合并起来,变成三次挥手(CLOSE_WAIT状态意义是什么)?2.如果第二次挥手时服务器的ACK没有送达客户端,会怎样?TCP拥塞控制的四个算法TCP和UDP的区别什么时候选择TCP,什么时候选UDP?TCP如何保证传输的可靠性从输入网址到获得页面的过程 (越详细越好)?TCP三
2021-11-05 00:17:39
209
原创 Java并发编程(一)
这里写目录标题自我基础一、进程和线程图总概念并行和并发应用同步和异步应用之提高效率(案例1)二、Java线程创建和运行进程观察多个线程同时运行线程运行原理栈与栈帧线程上下文切换(Thread Context Switch)Java线程的常用方法run和startsleep和yield自我基础一个核心只运行一个线程,每个核心会轮询分配时间片(windows为15ms)给任务调度器里就绪的线程,每个线程运行15ms就等待,先到下一个,如此反复。人的正常感应时间为100ms左右。一、进程和线程图总概念
2021-10-26 00:17:53
259
原创 Java复习常用的数据结构和常用面试题之堆
这里写目录标题堆1.1 堆的定义堆的特性:堆的API设计堆的实现1.堆的插入方法insert2.delMax删除最大元素方法的实现堆1.1 堆的定义堆是计算机科学中一类特殊的数据结构的统称,堆通常可以被看做是一棵完全二叉树的数组对象。堆的特性:1. 它是完全二叉树,除了树的最后一层结点不需要是满的,其它的每一层从左到右都是满的,如果最后一层结点不是满的,那么要求左满右不满。2. 它通常用数组来实现。具体方法就是将二叉树的结点按照层级顺序放入数组中,根结点在位置1,它的子结点在位置2和3,而子结
2021-10-20 21:30:13
111
原创 Java复习常用的数据结构和常用面试题之树(一)
这里写目录标题树1.1树的基本定义1.2 树的相关术语二叉树的基本定义满二叉树:完全二叉树:二叉查找树的API设计成员变量插入方法put的实现查询方法get实现思想:删除方法delete实现思想:完整的API代码二叉查找树其他便捷方法查找二叉树中最小的键查找二叉树中最大的键二叉树的基础遍历1.前序遍历2.中序遍历3.后序遍历二叉树的层序遍历二叉树的最大深度问题实现步骤:树1.1树的基本定义树是我们计算机中非常重要的一种数据结构,同时使用树这种数据结构,可以描述现实生活中的很多事物,例如家谱、单位的组织
2021-10-16 21:17:50
474
原创 Java数据结构之快速排序
文章目录快速排序一、快速排序的基本思想二、代码1.核心代码2.快速排序源码实现快速排序一、快速排序的基本思想快速排序是对冒泡排序的一种改进。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。二、代码1.核心代码quickSort(int left,int right){ int i = left; int j
2021-10-10 01:56:50
232
原创 Java复习常用的数据结构和常用面试题之栈和队列
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录堆栈和队列栈(Stack)队列(Queue)实战题目思路解法[844. 比较含退格的字符串](https://leetcode-cn.com/problems/backspace-string-compare/)总结堆栈和队列Stack - First In First Out (FIFO)• Array or Linked ListQueue - First In Last Out (FILO)• Array or
2021-10-09 02:18:24
173
原创 Java复习常用的数据结构和常用面试题之数组和链表
文章目录前言1. 数组、链表(Array、Linked List)Array特点(数组)1.读取快2.插入和删除慢Linked List特点(链表)单链表内存模型插入和删除特点总结各自的优缺点实战题目个人解题思路1.反转链表2.两两交换链表中的节点前言提示:算法学习不努力,秋招春招是弟弟提示:以下是本篇文章正文内容来自极客时间系列教程,下面案例可供参考1. 数组、链表(Array、Linked List)Array:在内存中,数组是一块连续的区域Linked List:链表在内存中可以存在.
2021-09-10 03:54:19
1029
原创 windows关闭指定端口的进程
1.打开cmd命令窗口,输入命令:netstat -ano | findstr 8083,根据端口号查找对应的PID。结果如下:发现8083端口被PID(进程号)为29772的进程占用。2.根据PID找进程名称,输入命令:tasklist | findstr 29772,发现是占用8080端口的进程为:java.exe。3.根据PID结束对应进程。输入命令taskkill -PID 29772 -F,强制关闭PID为2188的进程。...
2021-09-09 13:47:08
625
原创 Java两个list直接赋值?达咩达咩!
今天做个list直接赋值 List<String> list1 = new ArrayList(); List<String> list2 = new ArrayList(); //list1加入数据 list1.add("a"); list1.add("b"); list1.add("c"); //直接赋值给list2? list2 = list1;
2021-09-09 00:10:34
1449
1
原创 SpringBoot使用AOP统一打印请求和返回信息
1.springboot默认自带的是logback日志插件,我们改成常用的log4j21.先排除出logback插件在maven配置的spring-boot-starter-web排去 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifact
2021-09-01 17:43:45
2113
原创 Java-ThreadLocal详解
ThreadLocal使用场景两大使用场景——ThreadLocal的用途典型场景1:每个线程需要一个独享的对象(通常是工具类,典型需要使用的类有SimpleDateFormat和Random)典型场景2:每个线程内需要保存全局变量(例如在拦截器中获取用户信息),可以让不同方法直接使用,避免参数传递的麻烦典型场景1:每个线程需要一个独享的对象1.用两个线程打印日期package MyThreadLocal;import java.text.SimpleDateFormat;
2021-08-31 11:39:35
128
原创 Java-线程池学习
一个简单的Thread的demo了解线程package mythreadpool;public class EveryTaskOneThread { public static void main(String[] args) { Thread thread = new Thread(new Task()); thread.start(); } static class Task implements Runnable{ @Ov
2021-08-30 21:38:57
124
原创 Java排序算法---归并排序(一看就懂)
归并排序的一般过程归并排序也是利用分治思想的一种排序算法。归并算法就是将要排序的数组切成两半,,然后递归继续切,直到最后切成单个元素。然后重新合并(归并),每两个合并成一个大的,直到最后合并成一个,排序完成。举个栗子以6,2,7,8,9,4,5,0,3为例先切割,后合并。所以我只需要分别理解好切割和合并两个过程就好了1.先理解,如何把两个有序的数组合并呢?import java.util.Arrays;/** * 两个有序的数组排序整合成一个数组 */public class m
2021-08-30 12:52:23
244
原创 Java生成随机编号
Java生成随机编号在日常开发中,需要用到唯一切有一定规律编号非常多,订单号,编号等等,今天做了一个柜子编号,用时间戳和随机数组成一个订单号,简答Mark一下代码 //生成唯一的多功能柜编号 private String generateCabinetNum(){ String code = DateFormatUtils.format(new Date(), "yyyyMMddHHmmss"); Random re = new Random();
2021-08-18 11:53:25
2404
原创 定时任务Cron表达式学习
有关定时任务Cron表达式的那些背景:今天在做quartZ定时任务,发现了要用Cron表达式去指定出发的时间表。1.CronTriggerCronTrigger,你可以指定触发的时间表如“每星期五中午”,或“每个工作日9:30时”,甚至“每5分钟一班9:00和10:00逢星期一上午,星期三星期五“。即便如此,SimpleTrigger一样,CronTrigger拥有的startTime指定的时间表时生效,指定的时间表时,应停止(可选)结束时间。2.Cron表达式cron的表达式被用来配置Cro
2021-08-12 11:25:58
1961
原创 Docker的安装和配置常用mysql,redis,RabbitMQ,elasticsearch等常用组件和打包部署springboot项目
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、用阿里云镜像安装Docker?二、阿里云镜像加速1.登录阿里云前言618活动69块钱,嫖了个一年服务器,简单配了密码,用Xshell连上,直接开冲楼主选的是CentOS 8.3一、用阿里云镜像安装Docker?1.卸载已安装Docker组件(如果没有安装过Dokcer,跳过这一步)yum remove -y docker-ce \ docker-client \ docker-client
2021-06-21 13:44:48
975
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人