<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Dodder444的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Dodder444</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Dodder444]]></copyright><item><title><![CDATA[【笔记】使用redis作为分布式锁，手动版]]></title><link>https://blog.youkuaiyun.com/Dodder444/article/details/124667346</link><guid>https://blog.youkuaiyun.com/Dodder444/article/details/124667346</guid><author>Dodder444</author><pubDate>Mon, 09 May 2022 15:27:31 +0800</pubDate><description><![CDATA[//使用redis作为分布式锁
    public Map&lt;String, List&lt;Catelog2Vo&gt;&gt; getCatalogJsonFromDbWithRedisLock() {
        //TODO 【重要】实际就关心两个问题：1、原子加锁，保证过期时间；2、原子解锁
        String uuid = UUID.randomUUID().toString();
        //1、占分布式锁，去redis占坑 SETNXEX
        Boo.]]></description><category></category></item><item><title><![CDATA[锁是实现隔离级别的一种机制]]></title><link>https://blog.youkuaiyun.com/Dodder444/article/details/122986509</link><guid>https://blog.youkuaiyun.com/Dodder444/article/details/122986509</guid><author>Dodder444</author><pubDate>Thu, 17 Feb 2022 16:36:18 +0800</pubDate><description><![CDATA[z事务和锁机制是什么关系？ 开启事务就自动加锁了吗？ 菜鸟，谢谢了。_百度知道

转发留存学习
]]></description><category></category></item><item><title><![CDATA[SQL join的用法例子]]></title><link>https://blog.youkuaiyun.com/Dodder444/article/details/122566951</link><guid>https://blog.youkuaiyun.com/Dodder444/article/details/122566951</guid><author>Dodder444</author><pubDate>Tue, 18 Jan 2022 19:38:09 +0800</pubDate><description><![CDATA[转发用作笔记
SQL的各种连接Join详解 - 章朔 - 博客园
]]></description><category></category></item><item><title><![CDATA[关于请求体，笔记留存]]></title><link>https://blog.youkuaiyun.com/Dodder444/article/details/122224397</link><guid>https://blog.youkuaiyun.com/Dodder444/article/details/122224397</guid><author>Dodder444</author><pubDate>Wed, 29 Dec 2021 20:48:16 +0800</pubDate><description><![CDATA[https://www.cnblogs.com/yizhilin/p/12897612.html?ivk_sa=1024320u

]]></description><category></category></item><item><title><![CDATA[Apache POI使用详解]]></title><link>https://blog.youkuaiyun.com/Dodder444/article/details/120462891</link><guid>https://blog.youkuaiyun.com/Dodder444/article/details/120462891</guid><author>Dodder444</author><pubDate>Fri, 24 Sep 2021 20:49:35 +0800</pubDate><description><![CDATA[转载学习：
POI使用详解 - 空谷幽澜 - 博客园
]]></description><category></category></item><item><title><![CDATA[redis实现分布式锁]]></title><link>https://blog.youkuaiyun.com/Dodder444/article/details/119962831</link><guid>https://blog.youkuaiyun.com/Dodder444/article/details/119962831</guid><author>Dodder444</author><pubDate>Sat, 28 Aug 2021 00:41:34 +0800</pubDate><description><![CDATA[转载，用作收藏学习

https://www.cnblogs.com/williamjie/p/9395659.html
]]></description><category></category></item><item><title><![CDATA[controller接收表单发送级联属性]]></title><link>https://blog.youkuaiyun.com/Dodder444/article/details/118277692</link><guid>https://blog.youkuaiyun.com/Dodder444/article/details/118277692</guid><author>Dodder444</author><pubDate>Sun, 27 Jun 2021 18:14:11 +0800</pubDate><description><![CDATA[person类


@NoArgsConstructor
@AllArgsConstructor
@ToString
@Data
public class Person {
    private String name;
    private Integer age;
    private Date birth;
    private Pet pet;
}

Pet类


@AllArgsConstructor
@NoArgsConstructor
@Data
public class Pet im]]></description><category></category></item><item><title><![CDATA[SpringBoot自定义starter]]></title><link>https://blog.youkuaiyun.com/Dodder444/article/details/118256298</link><guid>https://blog.youkuaiyun.com/Dodder444/article/details/118256298</guid><author>Dodder444</author><pubDate>Sat, 26 Jun 2021 23:57:27 +0800</pubDate><description><![CDATA[在一个空的工程里新增两个模块，一个是自动配置包，一个是场景启动器



场景启动器的pom文件里引入自动配置包


&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://]]></description><category></category></item><item><title><![CDATA[配置加载优先级]]></title><link>https://blog.youkuaiyun.com/Dodder444/article/details/118256064</link><guid>https://blog.youkuaiyun.com/Dodder444/article/details/118256064</guid><author>Dodder444</author><pubDate>Sat, 26 Jun 2021 23:03:34 +0800</pubDate><description><![CDATA[转载于https://blog.youkuaiyun.com/u011863024/article/details/113667946

外部配置源
	 Java属性文件。
		 YAML文件。
		 环境变量。
		 命令行参数。
	
	配置文件查找位置
 classpath 根路径。
	 classpath 根路径下config目录。
	 jar包当前目录。
	 jar包当前目录的config目录。
	 /config子目录的直接子目录。
配置文件加载顺序：
...]]></description><category></category></item><item><title><![CDATA[SpringBoot高级特性Profile的使用]]></title><link>https://blog.youkuaiyun.com/Dodder444/article/details/118252859</link><guid>https://blog.youkuaiyun.com/Dodder444/article/details/118252859</guid><author>Dodder444</author><pubDate>Sat, 26 Jun 2021 19:15:08 +0800</pubDate><description><![CDATA[为了方便多环境适配，Spring Boot简化了profile功能。

 默认配置文件application.yaml任何时候都会加载。
	 指定环境配置文件application-{env}.yaml，env通常替代为test，
	 激活指定环境
	 配置文件激活：spring.profiles.active=prod
		 命令行激活：java -jar xxx.jar --spring.profiles.active=prod --person.name...]]></description><category></category></item><item><title><![CDATA[Springboot定制指标监控的Endpoint]]></title><link>https://blog.youkuaiyun.com/Dodder444/article/details/118251802</link><guid>https://blog.youkuaiyun.com/Dodder444/article/details/118251802</guid><author>Dodder444</author><pubDate>Sat, 26 Jun 2021 17:48:31 +0800</pubDate><description><![CDATA[引入依赖：


        &lt;dependency&gt;
            &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
            &lt;artifactId&gt;spring-boot-starter-actuator&lt;/artifactId&gt;
        &lt;/dependency&gt;

相关yml的配置：


#management是所有actuator的配置
manageme]]></description><category></category></item><item><title><![CDATA[SpringBoot定制错误处理逻辑]]></title><link>https://blog.youkuaiyun.com/Dodder444/article/details/118230602</link><guid>https://blog.youkuaiyun.com/Dodder444/article/details/118230602</guid><author>Dodder444</author><pubDate>Sat, 26 Jun 2021 01:18:07 +0800</pubDate><description><![CDATA[自定义错误页 
error/404.html error/5xx.html；有精确的错误状态码页面就匹配精确，没有就找 4xx.html；如果都没有就触发白页

@ControllerAdvice+@ExceptionHandler处理全局异常；
底层是 ExceptionHandlerExceptionResolver 支持的

@ResponseStatus+自定义异常 ；
底层是 ResponseStatusExceptionResolver ，把responsestatus注解的信息底层调用 re.]]></description><category></category></item><item><title><![CDATA[Springboot自定义MessageConverter]]></title><link>https://blog.youkuaiyun.com/Dodder444/article/details/118225072</link><guid>https://blog.youkuaiyun.com/Dodder444/article/details/118225072</guid><author>Dodder444</author><pubDate>Fri, 25 Jun 2021 18:43:19 +0800</pubDate><description><![CDATA[实现多协议数据兼容。json、xml、x-saving（这个是自定义的）

 1、@ResponseBody 响应数据出去 调用 RequestResponseBodyMethodProcessor 处理

 2、Processor 处理方法返回值。通过 MessageConverter处理

 3、所有 MessageConverter 合起来可以支持各种媒体类型数据的操作（读、写）

 4、内容协商找到最终的 messageConverter


场景：

1、浏览器发请求直接...]]></description><category></category></item><item><title><![CDATA[springboot内容协商策略]]></title><link>https://blog.youkuaiyun.com/Dodder444/article/details/118224518</link><guid>https://blog.youkuaiyun.com/Dodder444/article/details/118224518</guid><author>Dodder444</author><pubDate>Fri, 25 Jun 2021 17:12:05 +0800</pubDate><description><![CDATA[根据客户端接收能力不同，返回不同媒体类型的数据。


引入依赖


 &lt;dependency&gt;
     &lt;groupId&gt;com.fasterxml.jackson.dataformat&lt;/groupId&gt;
     &lt;artifactId&gt;jackson-dataformat-xml&lt;/artifactId&gt;
&lt;/dependency&gt;


可用Postman软件分别测试返回json和xml：只需要改变请求头中Accept字段（..]]></description><category></category></item><item><title><![CDATA[基于springboot的自定义converter例子]]></title><link>https://blog.youkuaiyun.com/Dodder444/article/details/118221007</link><guid>https://blog.youkuaiyun.com/Dodder444/article/details/118221007</guid><author>Dodder444</author><pubDate>Fri, 25 Jun 2021 15:05:49 +0800</pubDate><description><![CDATA[Spring MVC 框架的 Converter 是一个可以将一种数据类型转换成另一种数据类型的接口，这里 S 表示源类型，T 表示目标类型。开发者在实际应用中使用框架内置的类型转换器基本上就够了，但有时需要编写具有特定功能的类型转换器。


例子：

person和pet存在级联关系的javabean


@NoArgsConstructor
@AllArgsConstructor
@ToString
@Data
public class Person {
    private String name.]]></description><category></category></item><item><title><![CDATA[让SpringMVC接收多个对象 4种方法]]></title><link>https://blog.youkuaiyun.com/Dodder444/article/details/118198592</link><guid>https://blog.youkuaiyun.com/Dodder444/article/details/118198592</guid><author>Dodder444</author><pubDate>Thu, 24 Jun 2021 23:45:02 +0800</pubDate><description><![CDATA[问题背景：
我要在一个表单里同时一次性提交多名乘客的个人信息到SpringMVC，前端HTML和SpringMVC Controller里该如何处理？

第1种方法：表单提交，以字段数组接收；
	第2种方法：表单提交，以BeanListModel接收；
	第3种方法：将Json对象序列化成Json字符串提交，以List接收；
	第4种方法：将表单对象序列化成Json字符串提交，以List接收；
	第4种方法其实是第3种方法的升级，就是将表单转成Json对象，再转成Json字符串提交；
	然而，第4种方...]]></description><category></category></item><item><title><![CDATA[@RequestBody和@ResponseBody的用法]]></title><link>https://blog.youkuaiyun.com/Dodder444/article/details/118055677</link><guid>https://blog.youkuaiyun.com/Dodder444/article/details/118055677</guid><author>Dodder444</author><pubDate>Sat, 19 Jun 2021 16:35:30 +0800</pubDate><description><![CDATA[1. 用json字符串格式向后台传请求参数，那么后台需要采用@RequestBody来处理请求的json格式数据，将json数据转换为java对象，否则springmvc就不能解析导致传空参的结果
]]></description><category></category></item><item><title><![CDATA[SpringBoot拦截器实现登陆拦截]]></title><link>https://blog.youkuaiyun.com/Dodder444/article/details/118031618</link><guid>https://blog.youkuaiyun.com/Dodder444/article/details/118031618</guid><author>Dodder444</author><pubDate>Fri, 18 Jun 2021 18:14:51 +0800</pubDate><description><![CDATA[https://www.jianshu.com/p/a5dd06939505
]]></description><category></category></item><item><title><![CDATA[间隙锁的危害]]></title><link>https://blog.youkuaiyun.com/Dodder444/article/details/118024477</link><guid>https://blog.youkuaiyun.com/Dodder444/article/details/118024477</guid><author>Dodder444</author><pubDate>Fri, 18 Jun 2021 13:50:46 +0800</pubDate><description><![CDATA[什么是间隙锁？

当我们用范围条件而不是相等条件检索数据，并请求共享或排他锁时，InnoDB会给符合条件的已有数据记录的索引项加锁；对于键值范围内但并不存在的ji'l
]]></description><category></category></item><item><title><![CDATA[mysql行锁]]></title><link>https://blog.youkuaiyun.com/Dodder444/article/details/118003084</link><guid>https://blog.youkuaiyun.com/Dodder444/article/details/118003084</guid><author>Dodder444</author><pubDate>Thu, 17 Jun 2021 23:42:49 +0800</pubDate><description><![CDATA[偏向InnoDB存储引擎，开销大，加锁慢；会出现死锁；锁定粒度最小，发生锁冲突的概率最低，并发度也最高。

InnoDB与MYISAM的最大不同的两点：yi'shi


]]></description><category></category></item></channel></rss>