自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 事务的隔离级别

事务隔离级别

2024-01-22 16:04:29 403

原创 分布式锁的几种实现方式:

分布式锁

2024-01-15 17:15:04 480

原创 IDEA快捷键大全

快捷键

2023-08-01 14:54:14 448

原创 Web server failed to start. Port xxxx was already in use.

Web server failed to start. Port xxxx was already in use.

2023-07-17 08:50:19 237

原创 Spring Security一篇文章就够了

Spring Security简介Spring Security 认证流程Spring Security 项目搭建自定义用户名和密码UserDetailsService详解PasswordEncoder密码解析器详解登录配置角色权限403 权限不足页面处理RememberMe(记住我)Spring Security 注解Spring Security中CSRF什么是CSRF?

2022-10-03 16:23:05 387 1

原创 为什么TheadLocalMap设计成一个个entry对象,而不用hashMap?

1、在设计ThreadLocal时,参考jdk都是鉴于效率性能优先。2、减少hash碰撞那如果ThreadLocal发生内存泄漏,原因一定是弱引用吗?

2022-08-31 14:50:00 508

原创 Java之多线程

线程4种创建的方式,线程池的用法和各项参数,synchroized关键字互斥锁

2022-08-15 12:34:25 191

原创 多线程死锁案例

假设线程T1占用o1资源,而线程T2占用o2资源,线程T1需要o2资源才能释放当前所占用的o1资源,而线程T2需要o1资源才能释放占用的o2资源,此时产生了死锁。线程死锁发生在争夺资源,互相需要 对方资源且又相互占用对方资源的情况。.........

2022-08-15 11:58:43 213

原创 RabbitMQ

RabbitMQ简介,RabbitMQ模型架构 ,RabbitMQ发送消息的顺序,RabbitMQ消息丢失,判断时否成功发送消息。交换机分类,延迟队列和 死信队列

2022-08-12 20:35:28 959

原创 SpringCach

在spring boot项目中,使用缓存技术只需在项目中导入相关缓存技术的依赖包,并在启动类上使用@EnableCaching开启缓存支持即可。例如,使用Redis作为缓存技术,只需要导入Spring data Redis的maven坐标即可。Spring Cache框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能.delete,add,等方法若数据发生改变了,将缓存移除,重新查询数据库。SpringCache使用redis缓存技术。allEntries默认为 false。...

2022-08-04 12:53:19 132

原创 SpringBoot项目部署

springboot项目部署,手动部署和使用shell脚本部署

2022-08-02 13:53:44 390

原创 Linux常用命令

Linux常用命令 firewall-cmd--zone=public--remove-port=8080/tcp--permanent移除开放的端口,做完也要重新reload。将文件打包压缩tar-zcvftest.tar.gztest对应的解压还原操作tar-zxvftest.tar.gz。firewall-cmd--zone=public--add-port=8080/tcp--permanent开放8080端口。...............

2022-08-01 15:15:14 346 3

原创 IDEA配置Git和相关操作

newproject选择GetfromVersionControl。2、修改git.config文件(文件也在用户的家目录下)加上。切换到master将hot-fix分支合并到当前的分支。3、在idea中file-setting。11、idea设置github账号。12、将项目分享到github。X是不要>>代表要。13、推送代码到远程库。1、先将代码提交到本地库。14、拉取远程代码到本地。5、将项目提交暂存区。15、克隆项目到本地。将反斜杠修改成正斜杠。...

2022-07-23 11:40:59 228

原创 git常用命令

git常用的命令和操作

2022-07-22 13:10:32 334

原创 SpringBoot整合redis

1.修改redis的配置文件 redis.conf将默认bind的地址127.0.0.1注释,并且将proteted-mode设置成no2.开放linux端口号6379和阿里云防火墙6379端口号 systemctl start firewalld.service #开启防火墙 firewall-cmd --zone=public --add-port=6379/tcp --permanent #开启端口 firewall-cmd --reload #重启防火墙3.重.

2022-04-21 20:09:10 138

原创 redis常用5大数据类型

redis键操作keys *查看当前库所有 key (匹配:keys *1)exists key 判断某个 key 是否存在type key 查看你的 key 是什么类型del key 删除指定的 key 数据unlink key 根据 value 选择非阻塞删除 仅将 keys 从 keyspace 元数据中删除,真正的删除会在后续异步操作。expire key 10 10 秒钟:为给定的 key 设置过期时间ttl key 查看还有多少秒过期,-1 表示永不过期,-2 表示

2022-04-19 13:32:41 148

原创 CentOs安装redis

目录1.在redis官网找安装包Download | Redis2.解压压缩文件3.保存副本4.启动redis1.在redis官网找安装包Download | Redis下载后保存在电脑使用Xftp工具远程上传到linux上,直接拖,自动上传.2.解压压缩文件tar -zxvf redis-6.2.6.tar.gz 解压解压完成进入redis目录 cd redis-6.2.6使用make命令编译(需要提前准备gcc环境)执行 .........

2022-04-18 15:19:50 485

原创 message from server: “Host ‘xxx.xxx.xxx.xxx‘ is not allowed to connect to this MySQL server“

maven打包之前是在test环境,想发布到product环境,发现最后打包测试时发现了问题org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is java.sql.SQLException: null, message from server: "Host '211.142.247.14...

2022-04-17 14:01:15 565

原创 Springboot实现拦截器功能

preHandle 预先处理,在目标的controller方法执行之前,进行处理postHandle 在目标的controller方法执行之后,进行处理afterCompletion 在页面渲染之后进行处理方法

2022-04-11 17:30:49 16767 3

原创 SpringBoot整合mabtis

1.引入mabtis的依赖可以在创建springboot项目的时候就勾选引用mabits框架模板,相关mabtis场景启动器就会自动导入再加上jdbc和mysql包或者手动引入依赖Springboot整合mabtis包<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-bo.

2022-04-10 11:36:00 1199 1

原创 文件的上传功能

使用文件上传时,设置 enctype="multipart/form-data" 并且method为post请求否则无法提交上传多个文件时,在后面加上 multiple

2022-04-05 17:28:37 974

原创 SpringBoot常用注解

@PathVariable @RequestHeader @ModelAttribute @RequestParam @MatrixVariable @CookieValue @RequestBody @RequestAttribute@PathVariable 用于获取路径中的参数像映射路径 @GetMapping("/user/{id}/owner/{username}") 可以使用@PathVariable注解获取大括号中的id和usernane的值@PathVariable(..

2022-03-20 20:55:53 647 7

原创 Rest使用与原理

1.当我们 需要用到delete和put方式发送请求时,会发现请求的默认方式还是get,我们需要配置一个 hiddenHttpMethodFilter ,springboot已经默认配置好了,我们需要手动去开启.开启方式,也可以说是使用方式默认使用post方式,只需要在隐藏域 _method后指定是以put或者delete方式就ok最后一步:在yml配置文件中开启hiddenHttpMethodFilter spring: mvc: hiddenmeth..

2022-03-18 12:35:03 603 1

原创 SpringBoot静态资源目录和首页和错误页面处理

1.静态资源只要放在类路劲下面 /static 或者 /public 或者 /resource 或者/META-INF/resources目录下就可以直接使用项目的根路劲/+静态资源 名称访问若需要修改路劲,可以在配置文件中Spring: mvc: static-path-pattern: /res/**此时访问 静态文件的 路劲 就需要添加 res前缀.在template目录下的index.html会默认变成首页,无需再controller层配置,若需要改变...

2022-03-16 10:43:20 554 7

原创 Springboot启动时出错

springboot启动错误

2022-03-14 22:15:52 2069

原创 Springboot开发Lombok

1.LombokLombook可以帮助我们在springboot中更能简化JavaBean的开发具体做法:1)引入Lombook的依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency>2)注解方式生成各种方法页面看起来更

2022-03-14 16:56:00 428

原创 SpringBoot配置绑定@ConfigurationProperties

在以前或我们需要写一个配置文件,供我们读取参数时,我们一般将properties文件中的内容,把它封装到JavaBean中比如:public class getProperties { public static void main(String[] args) throws FileNotFoundException, IOException { Properties pps = new Properties(); pps.load(new File

2022-03-11 19:06:19 1316

原创 @Import,Conditional和@ImportResourse注解

@Import@Import({User.class, DBHelper.class})@Configuration(proxyBeanMethods = false) //告诉SpringBoot这是一个配置类 == 配置文件public class MyConfig {}import将指定类型的类导进去,并且可以自动的给这俩个组件创建无参构造器,和指定类型的对象放在容器@Conditionalctrl+h打开注解的继承树,有许多的派生注解condition翻译就.

2022-03-10 15:29:50 496 1

原创 SpringBoot组件添加@configuration

@configuration使用方法,在MainApplication同级目录下新建一个 config包,包中写一个类为Myconfig,并且标注@configuration,标注这是一个配置类,Springboot基本上都是基于注解的形式开发,省去了配置文件冗余的配置.beans和config包在主类的同级目录,则springboot会自动扫描类,给MyConfig类添加一个@configuration注解,标识为配置类,配置的类同样也是一个组件,组件的id就是小写字母开始的方法名.@Bean ,

2022-03-08 17:37:11 2114

原创 SpringBoot自动配置

1.依赖管理:当我们在创建springboot项目时,我们只引入了一个springboot父项目,和一个starter-web依赖,几乎我们所有的包都有,我们无需关系我们的导包问题.其中父项目就涵盖了这个依赖,用作依赖管理,子项目只要继承这个依赖,其父项目所有的jar包,子项目都会涵盖.依赖管理如何控制版本号?在我们引入的父项目,它也有一个父项目其中几乎声明了所有开发中常用的依赖的版本号,自动版本仲裁机制其中声明了很多jar包版本依赖,所以我们不需要去导入很庞大的jar包和版本号

2022-03-08 14:52:20 506

原创 快速创建一个springboot项目

1.new一个maven项目,后导入父工程和依赖想用到springboot的功能就需要引入springboot的父项目<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.4.RELEASE</

2022-03-07 16:47:12 681 2

原创 hash为什么这么快?

hash表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构.它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做hash表.相对于传统的线性查找,需要查找一个数组的元素,需要遍历整个数组,如果存在就返回.而通过hash表,就能够大幅度的提高查找的效率.若我们需要查询数组为100的大小,找到一个特定的值,用传统的做法就是依次从数组的0号元素开始,依次遍历到第99号元素,去通过比较元素的

2022-03-04 15:16:12 1887 4

原创 笔记本键盘禁用

禁用笔记本键盘方法1、点击开始菜单,打开所有应用;2、打开windows系统文件夹,右键点击命令提示符(cmd);3、在弹出的选项中选择【以管理员身份运行】选项即可4、输入以下代码,回车确定,重启电脑生效sc config i8042prt start= disabled 禁用键盘sc config i8042prt start= auto 开启键盘...

2022-03-03 15:30:56 3660

原创 查找算法(线性查找,二分查找)

线性查找线性查找:用逐一的去比对数组每个位置元素的值,直到找到需要找到的元素.线性查找也叫做顺序查找,从数组的第一个元素一直到最后一个元素去查找.方法简单,遍历整个数组即可;public class SeqSearch { public static void main(String[] args) { int[] arr={12,2,3,13,13,8,6}; int result = searchIndex(arr, 3); Sy

2022-03-01 15:02:25 275

原创 几大排序算法介绍

排序分为内部排序和外部排序。所谓内部排序就是将程序先加载进内存再进行排序。而外部排序就是若数据量比较大的时候,如果无法将程序全部加载进内存,则用外部排序,外部排序是内部和外部相结合的方式去进行排序。常见的内部排序有插入排序,选择排序,交换排序,归并排序,基数排序其中 插入排序有可以分为:直接插入排序,希尔排序。 选择排序又可以分为:简单选择排序和堆排序。 交换排序可以分为:冒泡排序和快速排序。...

2022-02-28 14:21:43 835 4

原创 环形链表的构建

环形链表:所谓环形链表通俗的来说就是一个结点可以通过若干次遍历之后,又可以 遍历到自身。环形链表的创建思路:考虑到所有的结点加入进链表都要成环,则将第一个结点特殊化,每次将新的结点加进来都指向第一个结点,每次都断开上一个结点指向第一个结点的指针。这样保证链表成为一个尾指向头的环形链表。我们将用到三个指针:第一个firstNode指针,永远都指向第一个结点。第二个指针curNode,指向链表的最后一个结点。第三个就是指向当前加进来结点的指针heroNode。在对第一个结

2022-01-21 14:43:40 1155

原创 求连续相邻的最大子列和

leetcode第53题,此题用暴力能做出结果但是显然过不了,因为时间复杂度太高了。当然其它的做法也有很多,最简单的方法还是用数学的方法。先上思路。遍历数组,先定义一个最大的数,让第一个数和它相加,如果相加的结果是负数,则把最大子列和maxSize置为0,若是正数则先保存在curSize里面,对后续的遍历,若结果为负一样的将结果curSize置为0,若为正数,且curSize大于之前保存的maxSize则将maxSize置换。另外就是如果子列全都是负数的情况,需要重新做判断,...

2022-01-04 13:30:11 189

原创 选择排序原理

选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的开头。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。选择排序的不稳定例子很简单。比如A 80 B 80 C 70 这三个数据从小到大排序第一步会把C和A做交换 变成C B A第二步和第三步不需要再做交换了。所以排序完是C B A.

2022-01-01 21:44:02 2555

原创 双链表的增删改查

1、啥是双链表?双链表也是链表的一种,相对于单链表而言,双链表是双向的。既有包含指向序列的前一个节点的指针,又包含指向序列的下一个节点的指针。所以基本的操作都是大同小异的,还没有了解过单链表的小伙伴可以先去了解一下。2、思路对上图的说明: 分析 双向链表的遍历,添加,修改,删除的操作思路1) 遍历2) 添加3) 修改4) 删除在初始化链表时,只需要在在单链表的基础上,加上heroNode.previous = temp;让每次添加都指向前...

2021-12-23 13:25:01 2704

原创 冒泡排序原理和实现

冒泡排序算法的原理如下: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 比如说我现在有个数组 {8,6,5,11}第一大次从第一个数开始,8如果碰到比自己小的数就会把它和换个位置,开始时,第一次8和6比较,6比...

2021-12-17 22:34:52 894

空空如也

空空如也

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

TA关注的人

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