<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[我就说我500的博客]]></title><description><![CDATA[分享一些开发技巧]]></description><link>https://blog.youkuaiyun.com/qq_42628989</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_42628989]]></copyright><item><title><![CDATA[SpringBoot字段注入和构造函数注入的区别]]></title><link>https://blog.youkuaiyun.com/qq_42628989/article/details/130153297</link><guid>https://blog.youkuaiyun.com/qq_42628989/article/details/130153297</guid><author>qq_42628989</author><pubDate>Fri, 14 Apr 2023 14:57:33 +0800</pubDate><description><![CDATA[在SpringBoot中，我们可以使用@Autowired注解来实现依赖注入，即让Spring容器自动为我们的类提供所需的对象。有三种常见的注入方式：字段注入，Setter方法注入和构造函数注入。字段注入：直接在类的属性上使用@Autowired注解，无需编写额外的代码。Setter方法注入：在类的Setter方法上使用@Autowired注解，需要编写相应的Setter方法。构造函数注入：在类的构造函数上使用@Autowired注解，需要编写相应的构造函数。下面是一个简单的例子，假设我们有一个。]]></description><category></category></item><item><title><![CDATA[Synchronized锁失效的几种情况]]></title><link>https://blog.youkuaiyun.com/qq_42628989/article/details/127550934</link><guid>https://blog.youkuaiyun.com/qq_42628989/article/details/127550934</guid><author>qq_42628989</author><pubDate>Thu, 27 Oct 2022 13:56:47 +0800</pubDate><description><![CDATA[Synchronized锁失效的几种情况]]></description><category></category></item><item><title><![CDATA[Git 回退（Revert）操作后无法重新合并的问题]]></title><link>https://blog.youkuaiyun.com/qq_42628989/article/details/127421285</link><guid>https://blog.youkuaiyun.com/qq_42628989/article/details/127421285</guid><author>qq_42628989</author><pubDate>Thu, 20 Oct 2022 10:29:26 +0800</pubDate><description><![CDATA[git revert后无法重新提交]]></description><category></category></item><item><title><![CDATA[阿里云DDNS动态绑定域名与IP实现远程调试远程办公]]></title><link>https://blog.youkuaiyun.com/qq_42628989/article/details/124845455</link><guid>https://blog.youkuaiyun.com/qq_42628989/article/details/124845455</guid><author>qq_42628989</author><pubDate>Wed, 18 May 2022 17:07:01 +0800</pubDate><description><![CDATA[之前申请了公网IP，这样调试接口的时候可以直接远程调试，但因为申请的公网IP会随时变化，所以使用阿里云DDNS服务，随时绑定公网IP，直接域名访问服务。

1.创建阿里云账号和访问密钥（AccessKey）
AccessKey是您访问阿里云API的密钥，使用阿里SDK进行操作必须先获取AccessKey！
创建地址：https://usercenter.console.aliyun.com/

因为主账号权限过于强大，所以尽量使用子账号AccessKey并赋予需要使用的权限，这里我们点击“开始使用子账号A.]]></description><category></category></item><item><title><![CDATA[解决Maven打包的文件不带依赖项]]></title><link>https://blog.youkuaiyun.com/qq_42628989/article/details/123896816</link><guid>https://blog.youkuaiyun.com/qq_42628989/article/details/123896816</guid><author>qq_42628989</author><pubDate>Fri, 01 Apr 2022 14:21:21 +0800</pubDate><description><![CDATA[学习笔记，参考别人的教程

Maven打包时不会自带依赖项Jar，导致运行失败，Pom文件直接加入以下语句即可：
 &lt;build&gt;
    &lt;plugins&gt;
      &lt;plugin&gt;
        &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
        &lt;artifactId&gt;maven-assembly-plugin&lt;/artifactId&gt;
        &lt.]]></description><category></category></item><item><title><![CDATA[SQL语句查询取得表结构]]></title><link>https://blog.youkuaiyun.com/qq_42628989/article/details/123811858</link><guid>https://blog.youkuaiyun.com/qq_42628989/article/details/123811858</guid><author>qq_42628989</author><pubDate>Tue, 29 Mar 2022 09:18:26 +0800</pubDate><description><![CDATA[此代码复制他人文档，仅作学习记录

语句：
SELECT
	COLUMN_NAME 列名,
	DATA_TYPE 字段类型,
	CHARACTER_MAXIMUM_LENGTH 长度,
	IS_NULLABLE 能否为空,
	COLUMN_DEFAULT 默认值,
	COLUMN_COMMENT 字段注释 
FROM
	INFORMATION_SCHEMA.COLUMNS 
WHERE
	table_name = '表名' 
	AND table_schema = '数据库名' 

如果是Navicat，.]]></description><category></category></item><item><title><![CDATA[Spring事务失效场景总结]]></title><link>https://blog.youkuaiyun.com/qq_42628989/article/details/123769367</link><guid>https://blog.youkuaiyun.com/qq_42628989/article/details/123769367</guid><author>qq_42628989</author><pubDate>Sun, 27 Mar 2022 13:05:30 +0800</pubDate><description><![CDATA[之前面试时问到这个问题，明明以前学习过但是基本都忘记了，在此记录（文章部分内容参考IT老哥B站视频）。

1、事务方法的访问修饰符非public
Java访问权限修饰符共有：private、default、protected、public，Spring中，仅被public修饰的方法事务才会生效，如果方法被错误的访问权限修饰符修饰，事务不生效。
@Service
public class UserService {
    @Transactional
    private void add(UserMo.]]></description><category></category></item><item><title><![CDATA[SpringCloudGateway网关限流并返回自定义异常信息]]></title><link>https://blog.youkuaiyun.com/qq_42628989/article/details/123415786</link><guid>https://blog.youkuaiyun.com/qq_42628989/article/details/123415786</guid><author>qq_42628989</author><pubDate>Fri, 11 Mar 2022 08:22:49 +0800</pubDate><description><![CDATA[1.实现Gateway网关限流
SpringCloudGateway自带了 RequestRateLimiterGatewayFilterFactory 限流方案，依赖redis与内置的RedisRateLimiter过滤器进行限流操作，默认限流算法为令牌桶算法。
第一步：引入redis依赖
引入如下redis依赖或其他依赖：
&lt;dependency&gt;
    &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
    &lt;arti]]></description><category></category></item><item><title><![CDATA[多线程简单概念的个人理解]]></title><link>https://blog.youkuaiyun.com/qq_42628989/article/details/122251535</link><guid>https://blog.youkuaiyun.com/qq_42628989/article/details/122251535</guid><author>qq_42628989</author><pubDate>Fri, 31 Dec 2021 11:36:36 +0800</pubDate><description><![CDATA[之前了解这些概念的时候不是十分理解,只是大概知道怎么回事,晚上很多教程都是说定义,乍一看需要花时间去理解,在这里谈谈我自己的理解(偏白话,不谈具体概念)

1.乐观锁悲观锁
乐观锁
乐观锁其实就是不上锁,只是加一些逻辑判断防止资源冲突覆盖,比如从网上找来的图:

如果双方在报名的时候数据是相同的,原数据都是5,此时客户端1更新,将数据更新为6,但此时客户端2并不知道数据已被更新,拿着过期的数据5去更新数据库,这时候就会将客户端1的数据覆盖掉,造成覆盖错误.
再举个例子:
我在网上上报了一些资料,发布之后发.]]></description><category></category></item><item><title><![CDATA[分析并复现Apache核弹级漏洞，利用Log4j2使目标服务器执行任意代码]]></title><link>https://blog.youkuaiyun.com/qq_42628989/article/details/121874621</link><guid>https://blog.youkuaiyun.com/qq_42628989/article/details/121874621</guid><author>qq_42628989</author><pubDate>Sat, 11 Dec 2021 21:16:56 +0800</pubDate><description><![CDATA[12月9日晚间，ApacheLog4j2被曝光存在严重漏洞，可以随意执行任意远程代码，本贴将详细分析事故原因及实战复现此漏洞！

一.事件详情
1.事件经过
2021年12月9日，国内多家机构监测到Apache log4j存在任意代码执行漏洞，并紧急通报相关情况。由于ApacheLog4j2某些功能存在递归解析功能，攻击者可直接构造恶意请求，触发远程代码执行漏洞。
该漏洞CVSS评分达到了满分10分，影响全球一大半的互联网企业，包括百度、苹果等企业都被爆出存在该漏洞，众多媒体将这个漏洞形容成“史诗级”“核.]]></description><category></category></item><item><title><![CDATA[SpringBoot整合Sentinel实现服务限流、熔断]]></title><link>https://blog.youkuaiyun.com/qq_42628989/article/details/115936592</link><guid>https://blog.youkuaiyun.com/qq_42628989/article/details/115936592</guid><author>qq_42628989</author><pubDate>Wed, 21 Apr 2021 16:39:38 +0800</pubDate><description><![CDATA[Sentinel是面向分布式服务架构的高可用流量防护组件，主要以流量为切入点，从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。
详细介绍请看：https://github.com/alibaba/Sentinel/wiki

一、Sentinel服务的安装
1、Sentinel下载
项目地址：https://github.com/alibaba/Sentinel
Sentinel结构简介：
Sentinel整体项目由多个组件构成，但主要分为sentinel-co.]]></description><category></category></item><item><title><![CDATA[MySQL主从复制配置（读写分离准备工作）]]></title><link>https://blog.youkuaiyun.com/qq_42628989/article/details/114042555</link><guid>https://blog.youkuaiyun.com/qq_42628989/article/details/114042555</guid><author>qq_42628989</author><pubDate>Sat, 13 Mar 2021 16:13:21 +0800</pubDate><description><![CDATA[最近在学习ShardingSphere的分库分表和读写分离，其中读写分离部分涉及到MySql的主从复制，实验成功后在这里记录一下配置流程！

一、读写分离概念
1、读写分离原因：
首先读写分离字面意思就是将数据库的读写操作分开，数据库写操作全部在主数据库完成，随后MySql将数据主从复制后，所有读操作均在从数据库进行完成。因为数据库读操作比较很节省时间，但是写操作非常较耗时，此时如果将数据库读写分开操作进行，就可以避免写入操作时影响读取速度。
2、读写分离原理：
Mysql读写分离首先需要将以前的但数据库.]]></description><category></category></item><item><title><![CDATA[SpringBoot中@Configuration和@Bean和@Component相同点]]></title><link>https://blog.youkuaiyun.com/qq_42628989/article/details/111468741</link><guid>https://blog.youkuaiyun.com/qq_42628989/article/details/111468741</guid><author>qq_42628989</author><pubDate>Mon, 21 Dec 2020 10:59:04 +0800</pubDate><description><![CDATA[之前一直有疑惑，为什么SpringBoot中有些组件注入需要使用@Bean，有些需要使用@Component，有些使用@Configuration，今天做了一些实验，解除了疑惑

结论：@Configuration和@Bean和@Component在注入对象时大体上是没有区别的，都可以为Spring容器注入一个对象（底层对对象的处理在是有很大区别的，详细不在此处解释）
那么他们之间
@Bean注解的作用是将方法返回值作为一个bean注入到Spring容器中，方法名即为bean的名称

如图所示，该bean.]]></description><category></category></item><item><title><![CDATA[SpringBoot中注解数据校验，分组校验，自定义注解校验，同一异常处理（JSR303规范）]]></title><link>https://blog.youkuaiyun.com/qq_42628989/article/details/109731125</link><guid>https://blog.youkuaiyun.com/qq_42628989/article/details/109731125</guid><author>qq_42628989</author><pubDate>Thu, 19 Nov 2020 15:52:26 +0800</pubDate><description><![CDATA[在我们实际编程中，几乎都会使用到后端数据校验功能，是SpringBoot中，更是简化了这一操作，让我们来简单看一下！
本教程仅作为我个人的学习记录，避免遗忘，方便下次快速使用，如有错误，请指出，谢谢观看~

一、SpringBoot注解校验简单使用

...]]></description><category></category></item><item><title><![CDATA[SpringSecurity整合SpringBoot全干货使用教程]]></title><link>https://blog.youkuaiyun.com/qq_42628989/article/details/109539751</link><guid>https://blog.youkuaiyun.com/qq_42628989/article/details/109539751</guid><author>qq_42628989</author><pubDate>Mon, 09 Nov 2020 22:20:56 +0800</pubDate><description><![CDATA[本文没有任何原理解释，没有任何使用讲解，不适合初学者入门，适合已学过后的方法笔记以便于下次快速使用~
如有错误，请指出！


]]></description><category></category></item><item><title><![CDATA[Ajax上传文件（视频），并获取上传进度、上传速度和剩余时间。]]></title><link>https://blog.youkuaiyun.com/qq_42628989/article/details/109161488</link><guid>https://blog.youkuaiyun.com/qq_42628989/article/details/109161488</guid><author>qq_42628989</author><pubDate>Mon, 19 Oct 2020 16:01:42 +0800</pubDate><description><![CDATA[1.Ajax上传文件
如果动态上传文件并获取信息，则需使用Ajax上传。
html代码：
&lt;form id="fileUpload" enctype="multipart/form-data"&gt;
    &lt;input type="file" name="file"&gt;选择文件
&lt;/form&gt;
&lt;input  id="submit" type="button" value="确认上传" /&gt;

Js代码：
 $("#submit").click(function ]]></description><category></category></item><item><title><![CDATA[如何把开发组长气的打人（Java中换行符的骚操作）]]></title><link>https://blog.youkuaiyun.com/qq_42628989/article/details/108599479</link><guid>https://blog.youkuaiyun.com/qq_42628989/article/details/108599479</guid><author>qq_42628989</author><pubDate>Tue, 15 Sep 2020 15:40:53 +0800</pubDate><description><![CDATA[先上效果图：

可以看到，我们将代码注释掉之后，输出语句依旧执行，代码没有任何问题。
这里就涉及到了一个特殊字符：
 \u000d

大家可以将这个字符复制到注释后面，观察程序运行效果，发现注释掉的语句仍然可以正常执行！
所以这就有了很多骚操作
我这里先使用一个冒泡排序算法来代替项目中的代码逻辑：

1.我们可以将程序中的一些关键业务代码“注释”掉：

2.我们甚至可以将小括号大括号和关键字“注释”掉：

3.甚至连关键字，变量声明，特定的一些结构我们都可以“注释”掉：

4.类名方法名算什么，统统注释掉：]]></description><category></category></item><item><title><![CDATA[HTML的radio点击选中再点击取消（Jquery）]]></title><link>https://blog.youkuaiyun.com/qq_42628989/article/details/107907696</link><guid>https://blog.youkuaiyun.com/qq_42628989/article/details/107907696</guid><author>qq_42628989</author><pubDate>Mon, 10 Aug 2020 11:11:20 +0800</pubDate><description><![CDATA[复制以下代码就可以，点击时选择框的切换是由浏览器决定的，所以网上很多代码都会出现多次点击才可以取消的问题（使用cheched做标志位，其他单选内框点击后没有取消标志位）
   $("input:radio").click(function(){
        var checkedState = $(this).attr('checked');//记录当前选中状态
        if(checkedState == 'checked'){
            $("input:radio").rem]]></description><category></category></item><item><title><![CDATA[我的JVM学习笔记：运行时数据区（3）操作数栈详解]]></title><link>https://blog.youkuaiyun.com/qq_42628989/article/details/107523139</link><guid>https://blog.youkuaiyun.com/qq_42628989/article/details/107523139</guid><author>qq_42628989</author><pubDate>Wed, 22 Jul 2020 22:16:06 +0800</pubDate><description><![CDATA[感谢尚硅谷宋红康老师的JVM入门到精通课程，向每一个用心做免费教课程的老师致敬！
本套教程均为我学习课程之后的学习笔记，防止遗忘，并发送给大家分享，感谢大家查看~

1.上次内容
上次我们讲到，栈贞内部包含：局部变量表，操作数栈，动态链接，方法返回地址。
在上一篇文章中，我们着重介绍了局部变量表，有兴趣的可以去查看：我的JVM学习笔记：运行时数据区（2）局部变量表详解
本篇文章，让我们着重来学习一下栈帧存的包含的其他结构：操作数栈！
2.操作数栈详解（Operand Stack）
2.1栈的理解：
栈即可.]]></description><category></category></item><item><title><![CDATA[我的JVM学习笔记：运行时数据区（2）局部变量表详解]]></title><link>https://blog.youkuaiyun.com/qq_42628989/article/details/107444352</link><guid>https://blog.youkuaiyun.com/qq_42628989/article/details/107444352</guid><author>qq_42628989</author><pubDate>Sun, 19 Jul 2020 20:22:28 +0800</pubDate><description><![CDATA[感谢尚硅谷宋红康老师的JVM入门到精通课程，向每一个用心做免费教课程的老师致敬！
本套教程均为我学习课程之后的学习笔记，防止遗忘，并发送给大家分享，感谢大家查看~

1.虚拟机栈详解
本章衔接上篇文章：我的JVM学习笔记：第三章——运行时数据区（1），有需要的请点击查看。
栈贞的内部结构
栈贞内部包含：

局部变量表(Local variables)
操作数栈(operand Stack) ( 或表达式栈)
动态链接(Dynamic Linking) ( 或指向运行时常量池的方法引用)
方法返回地址(Re.]]></description><category></category></item></channel></rss>