自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 SpringCloud Gateway:status: 503 error: Service Unavailable

可能的一种原因是:yml配置了gateway.discovery.locator.enabled=true,此时gateway会使用负载均衡模式路由请求,但是SpringCloud Alibaba删除了Ribbon的依赖,无法通过负载均衡路由到指定的微服务,因此出现503报错。需要在pom中手动引入springcloud loadbalancer。使用SpringCloud Gateway路由请求时,出现如下错误。

2023-08-17 15:12:53 1357 1

原创 ReentrantLock实现PV操作-模拟多线程竞争数据库连接池资源场景

【代码】ReentrantLock实现PV操作-模拟多线程竞争数据库连接池资源场景。

2023-03-21 09:55:58 174

原创 网站架构优化之消息队列篇

网站的功能逐渐增多,最近考虑增加一个邮件通知功能,场景如下:对于所有留有邮箱地址&开启了通知权限的访客:发布新文章时,向此类访客发送通知邮件,结果数据入库访客的评论被其他人回复时,向此类访客发送通知邮件,结果数据入库其他场景在设计这个功能时考虑到,如果将各种发送邮件的场景都耦合在主站点中,某一时刻如果出现大量的发送邮件请求,那么主站的压力就过大了,严重至可能会崩溃,对其他访客提供不了正常服务(主要我这台1核2G的服务器实在扛不住),并且不利于扩展,基于以上问题考虑,我觉得有必要将邮件通

2022-02-25 18:37:02 1504

原创 有向图的十字链表存储方式,以及统计图中顶点度的方法-java

有向图使用邻接表存储方式时,顶点的出度通过遍历它的邻接单链表可以实现,但是入度需要遍历所有邻接单链表才能得到逆邻接表则相反,逆邻接表中顶点的入度易得到,出度则需要遍历所有单链表十字链表可解决这一问题,十字链表中的每个节点既有一个指针指向以它本身为尾的边的链表(出度),也有一个指针指向以它本身尾头的边的链表(入度)这样统计一个顶点的度就很方便,典型的使用空间换取时间。/** * 有向图的十字链表存储方式 */public class AdjacencyCrossListGraph {

2022-01-17 11:39:18 886

原创 图(无向网)的邻接表方式存储,以及邻接表的深度、广度优先遍历方法-java

/** * 图(无向网)的邻接表存储结构 */public class AdjacencyListGraph { // 邻接表的顶点数组 vertexNode[] vexs; int vexNums,arcNums; // 顶点数组的元素类 class vertexNode{ // 数据域 char data; // 存放由该结点的邻接点组成的单链表的头指针 // head只是为了方便操作的一

2022-01-17 11:25:31 1091

原创 图(无向网)的邻接矩阵存储以及深度、广度优先遍历操作-java

/** * 图的邻接矩阵表示法(无向网) */public class AdjacencyMatrixGraph { // 图的顶点数组 char[] vexs; // 邻接矩阵 int arcs[][]; // 图中顶点和边的数量 int vexNums,arcNums; // 构造方法 public AdjacencyMatrixGraph(int n){ this.vexs=new char[n];

2022-01-17 11:16:58 1316

原创 树、二叉树、森林的一些性质与操作

关于树的一些概念和术语,有位博主写的很好,可以点下面的链接去看一下我是链接二叉树的性质在二叉树的第i层上至多有2j-1个结点(i>=1)深度为k的二叉树至多有2k-1个结点(k>=1)深度为k时至少有k个节点对任何一棵二叉树T,如果其叶子数为n0,度为2的节点为n2,则n0=n2+1具有n个结点的完全二叉树的深度为[log2n]+1([log2n]代表向下取整),例如有12个结点的完全二叉树的深度为[212]+1=3+1=4如果对一棵有n个结点的完全二叉树(深度由性质4可知,为[

2022-01-13 00:25:30 181

原创 Java用两个栈实现队列

/** * 用两个栈实现队列 */public class StackQueue { Stack stackA; Stack stackB; int queueSize; public StackQueue(){ stackA = new Stack(); stackB = new Stack(); queueSize=0; } /** * 将入队元素压入到栈A * @param

2022-01-08 18:24:15 185

原创 Java用链表实现队列

/** * 链表实现队列 */public class LinkedQueue { class Node{ int val; Node next; public Node(int val){this.val=val;} public Node(int val,Node next){this.val=val;this.next=next;} } // 队头指针 Node front; // 队尾指针

2022-01-08 17:50:03 1854 1

原创 Java使用数组实现循环队列

/**数组实现循环队列*/public class LoopQueue {// 存储数据的数组int[] queue;// 队头指针int front;// 队尾指针int rear;/**初始化@param queueSize*/public LoopQueue(int queueSize){this.front=0;this.rear=0;this.queue = new int[queueSize];}/**入队@param element@ret

2022-01-08 17:04:09 482

原创 Java用链表实现链式栈

/** * 用链表实现栈 */public class LinkedStack { /** * 栈顶元素 */ private Node stack; /** * 栈中元素个数 */ private int stackSize=0; /** * 初始化栈 */ public LinkedStack(){ stack=null; } public LinkedS

2022-01-07 21:33:38 546

原创 Java用两个队列实现顺序栈

/** * 用队列实现栈 */public class QueueStack { /** * 队列A */ private Queue queueA; /** * 队列B */ private Queue queueB; private int stackSize=10; private int top; /** * 初始化 */ public QueueStack(){

2022-01-07 21:11:01 326

原创 Java用数组实现顺序栈

public class SequenceStack { private int stackSize=10; private int[] stack; // 栈顶指针 private int top=-1; public SequenceStack(){ stack = new int[stackSize]; } public SequenceStack(int stackSize){ this.stackSize=st

2022-01-07 20:54:17 96

原创 基础排序算法之归并排序

归并排序同快排一样,都是贯彻了分治思想,不同的是归并排序需要借助一个长度和待排序数组一样的空数组来完成排序操作package com.scaler7.sort;public class MergeSort { public static void main(String[] args) { int[] arr = {11,44,23,67,88,65,34,48,9,12}; int[] tmp = new int[arr.length]; //新建一个临

2021-11-23 20:32:52 326

原创 基础排序算法之快速排序

快速排序(快排)贯彻了分治思想,将待排序的数组逻辑上(只是逻辑上分割,实际上一切操作都是在原数组上进行的,没有产生任何新数组)分割为小数组,再将小数组逻辑上分割为更小的数组,这些小数组与小数组之间是有序的,小数组中的元素也是有序的,那么原数组自然而然也是有序的package com.scaler7.list;import java.util.Arrays;public class Sort { public static void main(String []args){

2021-11-20 16:42:10 355

原创 基础排序算法之希尔排序

希尔排序是基于插入排序的优化,如果不了解插入排序而期望直接了解希尔排序,是很难将希尔排序融汇贯通的所以在了解希尔排序之前一定要先了解插入排序插入排序的思想是: 1. 从数组中第二个元素(设为target)开始,将target之前的元素逐个与target对比,如果target之前的元素大于target,那么将它后移一位,然后再向前对比,直至遇到比target小的元素,将target放在这个元素后面(逻辑上就是将target插入到比它小的元素之前) 2.再将数组中第三个元素设为target,执行上面

2021-11-20 16:22:50 572

原创 Java手动实现单向链表

public class SinglyLinkedList<E> { private Node<E> first; private Node<E> last; public SinglyLinkedList(){ } private int size = 0; private Node addFirst(Node node){ first = node; return node;

2021-11-17 15:59:27 495

原创 Java手动实现有序表

public class SequenceList<E> { /** * 有序表 */ private Object[] list; /** * 默认容量 */ private int defaultCapatity = 10; /** * 有序表长度 */ private int length; /** * 当前容量 */ private in

2021-11-17 14:49:17 254

原创 node.js回调函数的3种写法

1.原始的callback写法,在js中经常会见到的写法,回调链长时易形成回调地狱(callback hell),非常不易阅读var fs = require("fs");//1.Callbackfs.readFile('C:/Users/scaler7/Desktop/read1.txt',(err,data1)=>{ if(err) throw err; fs.readFile('C:/Users/scaler7/Desktop/read2.txt',(err,data2)=

2021-07-27 15:14:02 642

原创 解决linux下启动关闭重启mysql时报错MySQL server PID file could not be found!The server quit without updating PID

重启mysql时报出这个错误最终是通过更改了my.cnf中的datadir的路径解决的这个datadir一定要是你安装mysql时设置的那个datadir的路径,网上很多解决方案只让你设置datadir=/usr/local/mysql/data,如果你安装mysql时设置的datadir不是这个路径,那么用这个肯定是错误的因为我更换过一次mysql默认使用的my.cnf,更换后的那个my.cnf中datadir的路径并不是我安装mysql时设置的那个路径,所以报了 PID file could

2021-06-26 18:50:44 700

原创 解决com.alibaba.druid.support.logging.JakartaCommonsLoggingImpl.error create connection SQLException

com.alibaba.druid.support.logging.JakartaCommonsLoggingImpl.error create connection SQLException, url: jdbc:mysql://localhost:3306/7shop?useSSL=false&useUnicode=true&characterEncoding=utf-8, errorCode 1045, state 28000这个报错是因为jdbc.properties文件中,用了u

2021-05-18 17:50:27 2890

原创 从零开始搭建个人博客-7Blog

网址: http://scaler7.online/

2020-09-15 11:18:35 207

原创 java去除字符串中的html标签

记录一下,免得忘了content = content.replaceAll("\&[a-zA-Z]{1,10};", “”).replaceAll("<[^>]*>", “”).replaceAll("[(/>)<]", “”);

2019-12-25 16:54:14 262 1

原创 用反射、代理、socket和zookeeper模拟dubbo远程调用接口(RPC)

实现一个简单的远程调用,需要四个项目,如下api提供接口,service提供接口的实现,provider和consumer分别是提供者和消费者。同时还需要一个zookeeper作为注册中心具体思路:provider启动后,将服务信息注册到zookeeper,同时开启socker监听,(这里的provider是作为socket中的服务端)。启动consumer,consumer启动后,立...

2019-12-12 11:33:51 593

原创 springboot+mybatis-plus+thymeleaf+shiro搭建个人博客(附源码)

肝了十几天,终于,我的个人博客1.0版本上线了,我期望我的博客前台页面是很简洁的,hexo博客模板很符合我的审美,但是我同时也期望博客的后台是由我来管理的,所以这套博客我仅仅使用了hexo博客模板的前端页面,后台管理系统由我自己开发。兴趣是学习最大的动力,这套博客系统适合springboot初学者,不要感觉下面这些技术很多,其实用起来也就那么回事。后续会持续发布此博客系统相关的博文,从头讲解博客...

2019-12-07 10:01:02 1737

原创 springboot项目启动报错:java.io.EOFException: null

springboot项目启动时报:java.io.EOFException: null异常,但是不影响功能,可能原因是由于tomcat上次非正常关闭时有一些活动session被持久化(表现为一些临时文件),在重启时,tomcat尝试去恢复这些session的持久化数据但又读取失败造成的。EOFException表示输入过程中意外地到达文件尾或流尾的信号,导致从session中获取数据失败。此异常...

2019-12-06 11:12:36 17092 1

原创 原生JS获取HTML DOM元素的8种方法

记录一下原生JS获取HTML DOM元素的8种方法通过ID获取(getElementById)通过name属性(getElementsByName)通过标签名(getElementsByTagName)通过类名(getElementsByClassName)通过选择器获取一个元素(querySelector)通过选择器获取一组元素(querySelectorAll)获取html的方法...

2019-12-05 11:54:59 395

原创 Linux上安装JDK、mysql、tomcat,以及将springboot项目部署到Linux上

安装jdk1下载jdk并放入linux系统2解压mkdir /usr/local/java #创建文件夹,等下就将jdk解压到这里tar -zxvf jdk-8u181-linux-x64.tar.gz -C /usr/local/java3配置环境变量vim /etc/profileJAVA_HOME=/usr/local/java/jdk1.8.0_181 #这里...

2019-11-19 22:43:00 679 1

原创 记一次在类中创建本类的对象遇到的坑

突然觉得自己好蠢,java基础忘光了上代码public class ResultObj{ public ResultObj success = new ResultObj(200,"ok"); public ResultObj erroe = new ResultObj(-1,"no"); private Integer code; private String msg; p...

2019-11-12 23:00:24 232

原创 springboot实战---记账本项目

项目放在了服务器上:点我访问项目root权限账号密码:root root普通用户账号密码:user 123456登陆界面预览主页面预览只做了一个页面的增删改查,使用springboot+mybatis+shiro+layui我使用的layui模板地址:http://layuicms.com/v1/index.htmlshiro只做了登陆认证授权和几个按钮的权限...

2019-11-07 19:54:48 1293 1

原创 layui-动态渲染下拉框(从后台获取下拉框的值) & 设置下拉框默认选中

动态渲染下拉框 $.post('请求地址',function(rs){ //item是返回的数据集合中的每个元素 $.each(rs.data, function (index, item) { // 追加option节点 //item.name是option里的文本值 /...

2019-11-07 17:54:31 4542

原创 SSM项目-汽车租赁后台管理系统

使用SSM和layui做了一个汽车租赁后台管理系统,功能还没有完善,先发出来再慢慢完善更新http://114.55.27.97/car-cms/login.jsp 可以点击这个地址访问项目,没来得及搞域名,大佬们高抬贵手别攻击我,谢谢啦包结构:项目后期又用Maven整合了一下,jar包太多,把pom贴出来好了pom.xml<properties> <aspec...

2019-10-31 15:05:41 3889 3

原创 expected single matching bean but found 2: busiCarMapper,sysUserMapper------SSM项目BaseMapper的问题

SSM项目中,我将复用性较高的方法封装了一个BaseMapper接口,其他所有Mapper接口继承于它,于是引发了一个问题错误代码太多,只贴出来主要的一行:expected single matching bean but found 2: busiCarMapper,sysUserMapper翻译结果为:期望单匹配bean,但发现2:busiCarMapper,sysUserMapper...

2019-10-18 16:11:18 498

原创 TypeError: can't assign to property "LAY_TABLE_INDEX" on "\u7537\u88C5": not an object

问题场景:在学习SpringMVC的过程中,前端使用layui框架。从后端传递json格式数据到前端的table时,出现这个错误。数据可以被前端正常解析,但是无法写入表格中为何出现这个问题:由于需求,前端只需接收一条数据,所以我后端直接把查到的数据bean对象,封装到Result中传给前端,错误的后台代码如下:解决方案:把后端获取到的数据add进list,然后把list以json格...

2019-10-13 18:47:30 3853

转载 No converter found for return value of type: class com.alibaba.fastjson.JSONObject MappingJackson2H

原文链接:https://blog.csdn.net/m0_37355951/article/details/74395410概述:报这种错误表示fastjson 或 jackson 转换SpringMVC错误,需要引入转换器;在spring-mvc.xml 配置增加:如果是fastjson:mvc:annotation-driven<mvc:message-converters...

2019-10-13 17:09:34 806

原创 "已拦截跨源请求:同源策略禁止读取位于 http://***********的远程资源"--个人解决方案

学习jsp的过程中遇到了此问题原因:jsp页面中的跳转的url地址前缀为:127.0.0.1而在网页上预览时填写的地址前缀为:localhost解决方案:统一写为127.0.0.1或localhost即可...

2019-09-24 16:29:53 22114 2

原创 关于static变量可以"先赋值、后声明"的问题

今天看到了一段代码,很有意思。public class Test { static{ i=0; System.out.println(i); // 编译错误"Cannot reference a field before it is defined" } public static int i=1;}上面一段代码,输出语句...

2019-09-05 17:59:10 1859

原创 面向对象三大特性之一:多态篇

多态:多态是指引用变量指向的具体类型在编译期并不确定,在运行期才确定,因此这个引用变量发起的方法调用在编译期也不确定,它的具体类型只有在运行期才能确定。多态的好处是我们不需要修改源代码,只需将引用指向不同的对象,就可以有多种不同的实现。多态只能在父类与子类、接口与接口实现类上使用。所以说,继承是多态的前提。父类引用指向子类对象是多态,谓之"向上转型",稍微遗憾的是,向上转型之后,只可调用父类的...

2019-09-03 15:31:21 237

原创 面向对象三大特性之一:继承篇

继承现实世界中,父母都是无私的,子辈可以继承父辈的财产。而在程序中,继承这一特性被描述的更加具体,类与类之间可以单继承,接口和接口之间可以多继承。子类可以调用父类所有非private修饰的属性和方法,而子类也可以拓展出父类所没有的方法和属性。类与类之间的继承我们就拿"树"作为例子树都有树龄,也都可以成长,这是所有树的共性。而苹果树继承自树,它不但拥有树的所有特征,还拓展出了独特的方法,就...

2019-08-06 21:31:16 169

原创 面向对象三大特性之一:封装篇

封装为何要封装?1.安全2.复用代码3.隐藏内部细节,只对外暴露你想让用户使用的东西哪里可以用到封装?1.属性封装实体类中存有age这一属性,我们不想让它随意地被外界直接调用和赋值,所以把它以private修饰。但是外界需要用到这一属性,所以我们添加了get和set方法,以供外界调用。但是,众所周知,人的年龄在[0,150]这个区间内,超出这个年龄的就是非法值。如果set方法得到了一...

2019-08-05 22:23:22 248

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除