自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mysql手册17_经验总结

1、如何定位慢查询3、如何使用 EXPLAIN 优化查询4、什么是聚簇索引和二级索引(非聚簇索引)5、超大分页处理聚簇索引:索引的叶子节点直接包含数据行,聚簇索引有且仅有一个。如果存在主键,主键索引就是聚簇索引。如果不存在主键,将使用第一个唯一索引作为聚簇索引。如果既没有主键索引也没有唯一索引,InnoDB会自动生成一个rowid作为隐藏的聚簇索引。二级索引:索引的叶子节点关联对应的主键,所以一般需要回表操作,二级索引可以存在多个。

2024-09-25 17:33:05 227

原创 JUC并发编程_四大函数式接口和 Stream 流式计算

接受单个输入参数并返回布尔值结果。主要用于条件判断,比如检查字符串是否为空、数字是否大于某个值等。不接受任何参数但返回某种类型结果,主要用于提供数据,比如生成随机数、获取当前时间等。接受单个输入参数但不返回任何结果,主要用于执行某些操作,比如打印日志、发送数据等。接受一个输入参数并返回结果。主要用于转换数据,比如字符串转大写、数字加一等。

2024-09-24 23:02:23 217

原创 JUC并发编程_线程池

Java中的线程池主要由 java.util.concurrent 包下的Executor、ExecutorService、ThreadPoolExecutor等接口和类提供支持。其中,ThreadPoolExecutor是线程池的核心实现类。Executor:线程池的顶级接口,定义了execute(Runnable command)方法,用于提交任务。

2024-09-24 13:19:22 328

原创 JUC并发编程_阻塞队列 BlockingQueue

通过阻塞等待机制,阻塞队列能够自动平衡生产者和消费者的速度差异,防止生产者过快导致队列溢出,或消费者过慢导致队列空置。:Java中的线程池使用了阻塞队列来管理任务队列,当线程池中的线程数达到最大值时,新的任务会被放入阻塞队列中等待执行。生产者-消费者模式:阻塞队列支持生产者-消费者模式,即生产者向队列中添加元素,消费者从队列中取出元素。当队列满时,如果线程尝试向队列中添加元素,该线程将被阻塞,直到队列中有空间可用。当队列空时,如果线程尝试从队列中移除元素,该线程将被阻塞,直到队列中有元素可取。

2024-09-24 12:13:19 292

原创 JUC并发编程_ReadWriteLock

通过合理地使用读写锁,可以显著提高程序的并发性能和资源的利用率。当没有线程持有写锁时,读锁可以被多个线程同时获取,这提高了并发读取的效率。(Write Lock):写锁是独占的,当一个线程获得写锁后,其他线程无法获得读锁或写锁。确保每个锁都有对应的解锁操作,并且锁的获取顺序在多个线程中保持一致。:ReentrantReadWriteLock支持公平锁和非公平锁两种模式,可以根据需要选择合适的模式。数据保护:确保在写线程对数据进行修改时,能够排他性地访问数据,避免数据不一致的问题。是一个接口,它提供了。

2024-09-24 12:02:28 337

原创 Spring Cloud Alibaba 03_使用 openFeign 实现远程调用

注解以启用 OpenFeign 的自动配置。该注解会告诉 SpringBoot 在启动时扫描并注册所有标记了。注解声明一个 Feign 客户端,name 属性指定远程服务的名称。通过该接口定义远程服务的方法。

2024-09-22 20:57:03 292

原创 RabbitMQ09_实现延迟消息

这个插件可以将普通交换机改造为支持延迟消息功能的交换机,当消息投递到交换机后可以暂存一定时间,到期后再投递到队列。属性给队列A指定死信交换机,该死信交换机将消息路由到队列B,消费者监听消费队列B中的消息。发送消息给队列A并设置消息过期时间,使用。

2024-09-21 00:04:41 226

原创 RabbitMQ08_保证消息可靠性

消息投递到MQ但是MQ路由失败,MQ返回路由失败原因。持久消息投递到了MQ且入队完成持久化,返回ACK。临时消息投递到了MQ且入队成功,返回ACK。持久化消息:发送消息时将消息的。消息投递异常,返回NACK。

2024-09-20 15:58:44 622

原创 Linux 更多命令

screen 终端多路复用工具。screen 终端多路复用工具。netStat 网络工具。netStat 网络工具。

2024-09-17 11:05:34 382

原创 Linux系统的字体管理

在Linux系统中,新安装的字体需要被加入到字体缓存中,以便系统能够识别和使用它们。因此,你需要在服务器上执行 fc-cache 命令来更新字体缓存。这个命令会扫描 /usr/share/fonts 目录(以及其他可能存在的字体目录,如 ~/.fonts),并更新字体缓存数据库。执行该命令后,系统将会重新扫描 /usr/share/fonts 目录,并将新拷贝的字体加入到字体缓存中。

2024-09-04 11:13:12 195

原创 MINIO 对象存储服务

注:需要下载 MINIO SERVER(服务端) 和 MINIO CLIENT(客户端)两个文件。将下载的 MINIO 服务端与客户端文件放到bin目录下。创建minio相关目录:bin、data、log。MINIO 整合 SpringBoot。

2023-10-31 14:14:49 147

原创 IE报错 Stream ended unexpected

记录遇到的一个IE的神奇报错:环境: IE11HTML代码:JS代码:后端代码:现象: 在Chrome等浏览器测试正常,在IE浏览器上当文件处理模式勾选加密时上传失败,勾选解密时却上传成功。 错误信息:org.apache.commons.fileupload.MultipartStream$MalformedStreamException: Stream ended unexpectedly问题原因: IE浏览器的缺陷,如果form的最后一个元素是checkBox、Radio之类的没有

2022-06-23 10:59:24 910 1

原创 表格中的td内容换行显示

需求:将表格中td内容的换行显示解决办法:将表格中的数据用 div标签包裹,并添加如下属性:white-space:normal;word-break:break-all;word-wrap:break-word;注意:该div需要设置指定宽度,或为td设置宽度并设置div宽度为100%

2022-05-11 10:55:22 4126

原创 SpringBoot 使用 Jasypt 加解密

引入依赖<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.1.0</version></dependency>在属性文件中配置盐jasypt: encryptor: password: sa.

2022-03-01 15:16:50 1646 2

原创 ztree树节点名称过长的解决方法

定义 addDiyDom 方法function addDiyDom(treeId, treeNode) { var switchObj = $("#" + treeNode.tId + "_switch"), icoObj = $("#" + treeNode.tId + "_ico"); switchObj.remove(); icoObj.parent().before(switchObj); var spantxt = $("#" + treeNode.tId + "_span")...

2021-12-17 17:19:47 397

原创 LeetCode题

算法题两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标。输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。class Solution { public int[] twoSum(int[] nums, int target) { int result[]

2021-11-25 00:02:23 277

原创 eclipse安装lombok插件

去 Lombok 官网下载lombok.jar :https://projectlombok.org双击下载好的 lombak.jar 将弹出如下窗口:点击 Specify location… 选择eclipse的安装路径。点击 Install / Update点击 Quit Installer 完成安装安装完成后eclipse的安装路径下出现 lombok.jar 文件,且 eclipse.ini 配置文件中添加了如下内容:-javaagent:D:\eclipse\lombok.jar.

2021-07-21 13:25:13 234

原创 Spring面试题

Spring面试题1. 谈谈你对Spring的认识2. Spring的bean作用域有哪些3. Spring的bean是线程安全的吗4. 谈谈SpringMVC的工作流程5. SpringMVC有哪些常用的注解?有什么作用?6. 什么是事务的传播特性及Spring支持的特性有哪些?1. 谈谈你对Spring的认识Spring 的两大核心是IOC和AOP。IOC就是控制反转,指的是原本应该由我们自己创建和管理依赖的对象现在交给了Spring容器来管理。能够实现层与层之间的解耦。AOP就是面向切面编.

2021-03-27 11:25:42 88461 2

原创 mysql面试题

mysql面试题1. 查询学生表中30-41条的记录2. 查出有两门不及格的学生信息1. 查询学生表中30-41条的记录limit第一个参数指定第一个返回记录行的偏移量(从0开始)第二个参数指定返回记录行的最大数目SELECT * FROM student limit 29,122. 查出有两门不及格的学生信息学生表student [id, name]课程表course [id, name]成绩表scores [sid, cid, score]select s.id, s.nam.

2021-03-15 22:42:30 113162

原创 js面试题

js面试题1. document 操作节点的方法有哪些2. var a = {} 与 var a = function(){} 的区别3. 怎样获取 <select> 的文本?4. 怎样关闭 <checkbox> 的选项?5. let 与 const 的区别6. 使用JavaScript开启一个ajax1. document 操作节点的方法有哪些获取节点:document.getElementById('text')document.getElementsByName(n.

2021-03-15 22:02:29 112800

原创 javaweb面试题

javaweb面试题1. <%%> 与 <%!%> 的区别?(拓展:<%=%> 和 <%:%> )2. 页面间传值有哪几种几种方式3. cookie与session区别,如何使用4. Forward 和 Redirect 的区别专栏笔记:https://blog.csdn.net/blu_111/category_10397159.html1. <%%> 与 <%!%> 的区别?(拓展:<%=%> 和 <%:.

2021-03-15 20:28:18 113484 1

原创 Mybatis面试题

Mybatis面试题1. #{}和${}的区别2. 模糊查询like语句该怎么写3. 如何获取生成的主键4. 在mapper中如何传递多个参数5. 当实体类中的属性名和表中的字段名不一样时怎么办相关判断和简答1. #{}和${}的区别#{}是占位符,会预编译处理,可以防止sql注入,常用;${}是拼接符,只是简单的字符串替换,没有预编译处理。Mybatis在处理#{}时,#{}传入参数是以字符串传入,会将SQL中的#{}替换为?号,调用PreparedStatement的set方法来赋值。变量替

2021-03-13 22:06:46 110931

原创 java面试题

java面试题实现 String 字符串的反转思路1:String的底层是字符数组,可以先将其转成数组再反转public static void main(String[] args) { String str = "abcdefg"; System.out.println(reverse(str)); }public static String reverse(String str) { char[] strArr = str.toCharArray(); int x,y; c

2021-02-13 10:35:28 113495 1

原创 JavaWeb12_数据库连接池

数据库连接池JDBC的数据库连接对象是通过 DriverManager 来获取的,每次获取都需要向数据库申请获取连接,验证用户名和密码,执行完 SQL 语句后断开连接,这样的方式会造成资源的浪费,数据连接资源没有得到很好的重复利用。我们可以使用数据库连接池解决这一问题。数据库连接池的基本思想数据库连接池的基本思想就是为数据库建立一个缓冲池,预先向缓冲池中放入一定数量的连接对象,当需要获取数据库连接的时候,只需要从缓冲池中取出一个对象,用完之后再放回到缓冲池中,供下一次请求使用,做到了资源的重复利用,

2021-02-10 10:21:41 113254 1

原创 JavaWeb11_JDBC

JDBCJDBC 的介绍JDBC 的使用示例PreparedStatementJDBC 的介绍Java DataBase Connectivity 是一个独立于特定数据库的管理系统,通用的 SQL 数据库存取和操作的公共接口。JDBC 定义了一组标准,为访问不同数据库提供了统一的途径。JDBC 接口包括两个层面:1、JDBC API:面向应用的 API,供程序员调用面向数据库的 API供开发者调用的接口:java.sql 和 javax.sqlDriverManager 类Connecti

2021-02-05 19:28:45 113578

原创 JavaWeb10_Ajax

AjaxAsynchronous JavaScript And XML(异步的 JavaScript 和 XML)AJAX 指的是一种交互方式:异步加载。客户端和服务器的数据交互更新在局部页面的技术,不需要刷新整个⻚面(局部刷新)优点:1、局部刷新,效率更高2、用户体验更好使用 JQuery 实现 Ajax前端 jsp:data属性指定请求参数dataType属性指定服务器返回的数据类型success为请求成功的回调函数<script type="text/javascript

2021-02-05 14:18:10 113355

原创 JavaWeb09_文件上传下载

文件上传下载文件上传:在文件上传的 jsp 页面中的 form 表单提交方法需设置为post,enctype属性需设置为 multipart/form-data<form action="/bluwebtest/upload" method="post" enctype="multipart/form-data"> <input name="image" type="file"/><br/> <input type="submit" value="上传"/

2021-02-04 23:24:23 113446

原创 JavaWeb08_Filter 过滤器

Filter 过滤器功能:1、用来拦截传入的请求和传出的响应。2、修改或以某种方式处理正在客户端和服务端之间交换的数据流。使用示例:与使用 Servlet 类似,Filter 是 Java WEB 提供的一个接口,开发者只需要自定义一个类并且实现该接口即可。public class CharacterFilter implements Filter { @Override public void doFilter(ServletRequest request, ServletRespons

2021-02-04 21:47:26 113514

原创 JavaWeb07_Session 和 Cookie

Session服务器无法识别每一次 HTTP 请求的出处(不知道来自于哪个终端),它只会接受到一个请求信号,所以就存在一个问题:将用户的响应发送给其他人,必须有一种技术来让服务器知道请求来自哪,这就是会话技术。会话: 就是客户端和服务器之间发生的一系列连续的请求和响应的过程,打开浏览器进行操作到关闭浏览器的过程。会话状态: 指服务器和浏览器在会话过程中产生的状态信息,借助于会话状态,服务器能够把属于同一次会话的一系列请求和响应关联起来。实现会话有两种方式:sessioncookie属于同一

2021-02-04 17:23:24 113606

原创 JavaWeb06_JSP、EL 表达式、JSTL标签库

JSP 本质上就是一个 Servlet,JSP 主要负责与用户交互并将最终的界面呈现给用户,它是一个HTML+JS+CSS+Java 的混合文件。当服务器接收到一个后缀是 jsp 的请求时,将该请求交给 JSP 引擎去处理,每一个 JSP ⻚面第一次被访问的时候,JSP 引擎会将它翻译成一个 Servlet 文件,再由 Web 容器调用 Servlet 完成响应。单纯从开发的⻆度看,JSP 就是在 HTML 中嵌入 Java 程序。具体的嵌入方式有 3 种:1、JSP 脚本,执行 Java 逻辑代码

2021-02-04 17:11:34 113671

原创 JavaWeb05_Servlet

编写Servlet 程序示例:编写一个类去实现 Servlet 接口,并实现 service 方法:public class MyServlet implements Servlet{ @Override public void init(ServletConfig config) throws ServletException { System.out.println("----init----第一次访问时调用"); } @Override public ServletCo.

2021-01-26 14:11:19 113764

原创 写前端时遇到的Bug

写前端时遇到的BugBug1出现的问题:element-ui 的 Select 组件选值后,在 @change 方法中可以获取到新赋的值,但是页面上的 Select 框却没有显示问题的原因:https://cn.vuejs.org/v2/guide/reactivity.htmlVue 无法检测到对象属性的添加或删除。由于 Vue 会在初始化实例时对属性执行 getter/setter 转化,所以属性必须在 data 对象上存在才能让 Vue 将它转换为响应式的.解决办法: 在data

2021-01-16 15:54:11 122881 1

原创 正则表达式匹配规则

正则表达式匹配规则限定符:?(0或1次)限定符:* (0或1次或多次)限定符:+ (1次或多次)限定符:{ } (指定次数)使用 () 实现多个字符的匹配或运算符:|[ ] 定义匹配的字符范围元字符 \d \D \w \W \s \S . \b^ 匹配行首, $ 匹配行尾贪婪匹配与懒惰匹配使用实例注:本博客使用到的正则表达式在线测试工具:https://regex101.com/限定符:?(0或1次)? 表示其前面的一个字符出现的次数可以为0次或1次(可有可无)测试示例:oo?

2021-01-15 21:42:49 149757

原创 JavaScript_同步与异步、Promise、async/await、微任务与宏任务

JavaScript_同步与异步、Promise、async/await同步与异步示例:console.log("a")console.log("b")setTimeout(() => {console.log("异步操作")}, 2000)console.log("c")console.log("d")JQuery 的 Ajax 请求示例:console.log("1")$.ajax({ type: 'get', url: "http://localhost:

2021-01-14 20:25:14 148903

原创 MyBatisPlus05_分页

MyBatisPlus05_分页配置分页插件@Beanpublic PaginationInterceptor paginationInterceptor(){ return new PaginationInterceptor();}测试@Testvoid pageTest() { //创建 Page 对象,参数1:当前页码 参数2:每页记录数 Page<User> page = new Page<>(1,3); //创建查询条件

2020-12-25 22:10:43 144777

原创 SpringSecurity与JWT整合

SpringSecurity与JWT整合数据库基于:SpringSecurity从数据库中获取用户信息进行验证依赖:<dependencies> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <ver

2020-12-06 21:14:33 183486

原创 SpringSecurity从数据库中获取用户信息进行验证

SpringSecurity从数据库中获取用户信息进行验证基于 SpringBoot与SpringSecurity整合 案例的修改:数据库 user 表注,密码是由 BCrypt 算法加密对应用户名所得。root $2a$10$uzHVooZlCWBkaGScKnpha.ZrK31NI89flKkSuTcKYjdc5ihTPtPyqblu $2a$10$mI0TRIcNF4mg34JmH6T1KeystzTWDzWFNL5LQmmlz.fHndcwYHZGekaka $2a$10$/G

2020-12-05 22:17:23 185078 2

原创 Vue03_Vuex的基本使用

Vue03_Vuex的基本使用安装 vuex 的依赖包npm install vuex --savevuex 配置 jsimport { createStore } from 'vuex'export default createStore({ state: { count: 0 }, mutations: { // 不要在mutations中定义异步任务,需要借助actions来实现异步 add (state, step) { sta

2020-11-27 22:49:23 142987

原创 Docker06_发布自己的镜像

Docker06_发布自己的镜像在DockerHub上发布自己的镜像:第一步:先在这个网站注册一个账号:https://hub.docker.com/第二步,在服务器上登录账号:[root@blu tomcat]# docker login -u blucodingPassword: WARNING! Your password will be stored unencrypted in /root/.docker/config.json.Configure a credenti

2020-11-23 19:40:31 143924

原创 Linux 常用基本命令

Linux常用基本命令目录文件管理cd 切换目录cd 绝对路径/相对路径 切换目录cd .. 返回上一级目录cd ../.. 返回上两级目录cd / 进入根目录ls 列出目录ls 列出文件(不包括隐藏文件)ls -a 列出所有文件(包括隐藏文件)ls -l 列出文件和详细信息(不包括隐藏文件)ls -al 列出文件和详细信息(包括隐藏文件)pwd 显示当前路径pwd 显示当前用户所在目录

2020-11-21 00:07:04 149039 1

空空如也

空空如也

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

TA关注的人

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