自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【笔记】使用redis作为分布式锁,手动版

//使用redis作为分布式锁 public Map<String, List<Catelog2Vo>> getCatalogJsonFromDbWithRedisLock() { //TODO 【重要】实际就关心两个问题:1、原子加锁,保证过期时间;2、原子解锁 String uuid = UUID.randomUUID().toString(); //1、占分布式锁,去redis占坑 SETNXEX Boo.

2022-05-09 15:27:31 423

转载 锁是实现隔离级别的一种机制

z事务和锁机制是什么关系? 开启事务就自动加锁了吗? 菜鸟,谢谢了。_百度知道转发留存学习

2022-02-17 16:36:18 120

转载 SQL join的用法例子

转发用作笔记SQL的各种连接Join详解 - 章朔 - 博客园

2022-01-18 19:38:09 194

原创 关于请求体,笔记留存

https://www.cnblogs.com/yizhilin/p/12897612.html?ivk_sa=1024320u

2021-12-29 20:48:16 149

转载 Apache POI使用详解

转载学习:POI使用详解 - 空谷幽澜 - 博客园

2021-09-24 20:49:35 118

转载 redis实现分布式锁

转载,用作收藏学习https://www.cnblogs.com/williamjie/p/9395659.html

2021-08-28 00:41:34 123

原创 controller接收表单发送级联属性

person类@NoArgsConstructor@AllArgsConstructor@ToString@Datapublic class Person { private String name; private Integer age; private Date birth; private Pet pet;}Pet类@AllArgsConstructor@NoArgsConstructor@Datapublic class Pet im

2021-06-27 18:14:11 103

原创 SpringBoot自定义starter

在一个空的工程里新增两个模块,一个是自动配置包,一个是场景启动器场景启动器的pom文件里引入自动配置包<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://

2021-06-26 23:57:27 84

转载 配置加载优先级

转载于https://blog.csdn.net/u011863024/article/details/113667946外部配置源 Java属性文件。 YAML文件。 环境变量。 命令行参数。 配置文件查找位置 classpath 根路径。 classpath 根路径下config目录。 jar包当前目录。 jar包当前目录的config目录。 /config子目录的直接子目录。配置文件加载顺序:...

2021-06-26 23:03:34 100

原创 SpringBoot高级特性Profile的使用

为了方便多环境适配,Spring Boot简化了profile功能。 默认配置文件application.yaml任何时候都会加载。 指定环境配置文件application-{env}.yaml,env通常替代为test, 激活指定环境 配置文件激活:spring.profiles.active=prod 命令行激活:java -jar xxx.jar --spring.profiles.active=prod --person.name...

2021-06-26 19:15:08 284

原创 Springboot定制指标监控的Endpoint

引入依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>相关yml的配置:#management是所有actuator的配置manageme

2021-06-26 17:48:31 308

原创 SpringBoot定制错误处理逻辑

自定义错误页 error/404.html error/5xx.html;有精确的错误状态码页面就匹配精确,没有就找 4xx.html;如果都没有就触发白页@ControllerAdvice+@ExceptionHandler处理全局异常;底层是 ExceptionHandlerExceptionResolver 支持的@ResponseStatus+自定义异常 ;底层是 ResponseStatusExceptionResolver ,把responsestatus注解的信息底层调用 re.

2021-06-26 01:18:07 1751

原创 Springboot自定义MessageConverter

实现多协议数据兼容。json、xml、x-saving(这个是自定义的) 1、@ResponseBody 响应数据出去 调用 RequestResponseBodyMethodProcessor 处理 2、Processor 处理方法返回值。通过 MessageConverter处理 3、所有 MessageConverter 合起来可以支持各种媒体类型数据的操作(读、写) 4、内容协商找到最终的 messageConverter场景:1、浏览器发请求直接...

2021-06-25 18:43:19 1447

原创 springboot内容协商策略

根据客户端接收能力不同,返回不同媒体类型的数据。引入依赖 <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId></dependency>可用Postman软件分别测试返回json和xml:只需要改变请求头中Accept字段(..

2021-06-25 17:12:05 254

原创 基于springboot的自定义converter例子

Spring MVC 框架的 Converter 是一个可以将一种数据类型转换成另一种数据类型的接口,这里 S 表示源类型,T 表示目标类型。开发者在实际应用中使用框架内置的类型转换器基本上就够了,但有时需要编写具有特定功能的类型转换器。例子:person和pet存在级联关系的javabean@NoArgsConstructor@AllArgsConstructor@ToString@Datapublic class Person { private String name.

2021-06-25 15:05:49 216

转载 让SpringMVC接收多个对象 4种方法

问题背景:我要在一个表单里同时一次性提交多名乘客的个人信息到SpringMVC,前端HTML和SpringMVC Controller里该如何处理?第1种方法:表单提交,以字段数组接收; 第2种方法:表单提交,以BeanListModel接收; 第3种方法:将Json对象序列化成Json字符串提交,以List接收; 第4种方法:将表单对象序列化成Json字符串提交,以List接收; 第4种方法其实是第3种方法的升级,就是将表单转成Json对象,再转成Json字符串提交; 然而,第4种方...

2021-06-24 23:45:02 1589

转载 @RequestBody和@ResponseBody的用法

1. 用json字符串格式向后台传请求参数,那么后台需要采用@RequestBody来处理请求的json格式数据,将json数据转换为java对象,否则springmvc就不能解析导致传空参的结果

2021-06-19 16:35:30 438

转载 SpringBoot拦截器实现登陆拦截

https://www.jianshu.com/p/a5dd06939505

2021-06-18 18:14:51 94

原创 间隙锁的危害

什么是间隙锁?当我们用范围条件而不是相等条件检索数据,并请求共享或排他锁时,InnoDB会给符合条件的已有数据记录的索引项加锁;对于键值范围内但并不存在的ji'l

2021-06-18 13:50:46 522

原创 mysql行锁

偏向InnoDB存储引擎,开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。InnoDB与MYISAM的最大不同的两点:yi'shi

2021-06-17 23:42:49 558

原创 mysql的表锁

读锁:

2021-06-17 20:15:39 53

原创 使用索引优化排序order by 解决Using filesort

当使用explain查看sql语句 , 出现Using filesort时 , 一定要检查下order by字段这时候是使用了外部文件排序 , 并且看到rows列是全部数据时 ,速度会比较慢给这样的字段增加索引 , 可以解决这个问题没加索引的时候...

2021-06-17 16:06:48 509

转载 关于Mybatis的bind标签

<select id="" resultType=""> select * from tbl_employee where last_name like #{lastName} </select>

2021-06-13 20:47:07 1024

原创 关于集合的笔记整理

Collections:操作Collection、Map的工具类面试题:Collection 和 Collections 的区别?

2021-06-11 23:26:14 670

原创 关于多线程(杂项)

线程通信的例子:使用两个线程打印1-100 线程1,线程2 交替打印** 涉及到的三个方法:* wait():一旦执行此方法,当前线程就进入阻塞状态,并释放同步监视器* notify():一旦执行此方法,就会唤醒被wait的线程。如果有多个线程被wait,就唤醒优先级高的那个*notifyAll():一旦执行此方法,就会唤醒所有被wait的线程**说明:* 1.wait()、notify()、notifyAll()三个方法必须使用在同步代码块或同步方法中* 2.wait()、notif..

2021-06-11 22:09:26 1107

原创 使用同步机制将单例模式中的懒汉式改写为线程安全

class Bank{ private Bank(){} private static Bank instance = null; public static Bank getInstance() { //方式一:效率稍差// synchronized (Bank.class) {// if (instance == null) {// instance = new Bank();.

2021-06-11 22:04:23 76

原创 初识多线程——解决线程安全问题的方式

设立三个窗口卖100张票 (存在线程安全问题)class Window extends Thread { private static int ticket = 100; @Override public void run() { while (true) { if (ticket > 0) { System.out.println(getName() + ":卖票..

2021-06-11 21:58:39 71

原创 初识多线程——多线程创建的四种方式

多线程的创建,方式一:继承于Thread类* 1.创建一个继承于Thread类的子类* 2.重写Thread类的run() ————>将此线程执行的操作声明在run()中* 3.创建Thread类的子类的对象* 4.通过此对象调用star()** <p>* 例子:* 遍历100以内的所有偶数...

2021-06-11 21:35:58 176

原创 学习mybatis踩坑记录

报错:Caused by: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'emp'. Cause: java.lang.ClassNotFoundException: Cannot find class: emp at org.apache.ibatis.bu..

2021-06-11 17:26:28 199

转载 关于Mybatis的延迟加载

1、概念:MyBatis中的延迟加载,也称为懒加载,是指在进行表的关联查询时,按照设置延迟规则推迟对关联对象的select查询。例如在进行一对多查询的时候,只查询出一方,当程序中需要多方的数据时,mybatis再发出sql语句进行查询,这样子延迟加载就可以的减少数据库压力。MyBatis 的延迟加载只是对关联对象的查询有迟延设置,对于主加载对象都是直接执行查询语句的。2、加载时机:直接加载:执行完对主加载对象的 select 语句,马上执行对关联对象的 select 查询。侵入式延迟: 执行对主

2021-06-11 11:36:52 538 1

转载 什么是SQL注入以及mybatis中#{}为什么能防止SQL注入而${}为什么不能防止SQL注入

1.什么是SQL注入答:SQL注入是通过把SQL命令插入到web表单提交或通过页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL指令。  注入攻击的本质是把用户输入的数据当做代码执行。  举例如: 表单有两个用户需要填写的表单数据,用户名和密码,如果用户输入admin(用户名),111(密码),若数据库中存在此用户则登录成功。SQL大概是这样      SELECT * FROM XXX WHERE userName = admin and password = 111     但

2021-06-10 22:05:14 1025

原创 配置seata

这里使用的是seata-server-0.9.0首先分别将file.conf 、 registry.conf备份接下来修改file.conf的部分内容

2021-06-09 18:20:26 256

转载 CentOS7下安装RabbitMQ

由于在CentOS环境安装RabbitMQ 极度恶心~ 所以要写下这个恶心的过程,以免以后再恶心多一次。由于 RabbitMQ 使用通过 Erlang 来开发的,需要需要安装Erlang 然而在安装Erlang 又一大波依赖需要安装,而且这些依赖不在CentOS 默认的yum 库中。所以就郁闷了。来来来···· 赶紧来恶心一下~我这次全程都会使用yum来按照,所以准备好yum首先呢 恶心一下 先尝试来安装 erlang添加Erlang Solutions key 支持[roo..

2021-05-21 19:16:07 186

原创 关于Springboot+Mybatis的动态查询

前端页面 <form class="bs-example bs-example-form" method="get" role="form" style="width: 250px" th:action="@{/testGetUserByConditionIf}"> <div class="input-group"> <span class="input-group-addon">姓名</span>

2021-05-16 20:41:46 487

原创 关于Springboot处理选中删除操作

本文介绍,前端页面的多个选择框被勾选,然后被一键删除的操作前端页面 <!--表格--> <form action="#" id="form11" method="post" style="padding-left: 20px;padding-right: 20px" th:action="@{/deleteBeSelect}"> <table border="1" class="table table-bordered table-hover"

2021-05-15 15:22:33 668

原创 关于Springboot处理图片上传下载功能

前端页面,使用thymeleaf模板引擎<div> <ul class="nav navbar-nav"> <li><a href="/toStuMainPage">查询证书信息</a></li> <li class="active"><a href="#">上传证书</a></li>

2021-05-15 15:17:51 175

原创 关于springboot将Excel表导入至数据库以及数据回显范例

我们需要使用到workbook类,首先要导入相对应的maven<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.14</version> </dependency> <depe

2021-05-15 15:13:27 213

原创 springboot处理分页遇到的异常

Caused by: org.attoparser.ParseException: Cannot execute subtraction: operands are "null" and "1" (template: "adminMainPage" - line 121, col 44) at org.attoparser.MarkupParser.parseDocument(MarkupParser.java:393) at org.attoparser.MarkupParser.parse(Mar.

2021-05-03 22:49:21 702

转载 项目war包部署到第三方Tomcat,访问路径必须加上项目名称的坑

部署到Tomcat当我们打包好一个Springboot项目,如:message.war包,将war包粘贴到tomcat安装目录下的webapps目录之后(tomcat目录结构:https://mp.csdn.net/postedit/82112030),笔者的webapps路径为:D:\ruanjian\apache-tomcat-8.5.38-windows-x64\apache-tomcat-8.5.38\webapps。粘贴完启动tomcat,你就会发现webapps目录下多了一个message目

2021-04-27 17:57:01 312

空空如也

空空如也

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

TA关注的人

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