<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[sbin456的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/sbin456</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sbin456]]></copyright><item><title><![CDATA[JPA使用@EntityGraph立即加载关联实体]]></title><link>https://blog.youkuaiyun.com/sbin456/article/details/145458671</link><guid>https://blog.youkuaiyun.com/sbin456/article/details/145458671</guid><author>sbin456</author><pubDate>Wed, 05 Feb 2025 17:34:24 +0800</pubDate><description><![CDATA[例如我有一个Material类，其中有一个属性supplier使用了多对一关联到Supplier类，并开启懒加载，查询出来结果后，material.getSupplier()会单独查询一次数据库，这样很多场景下效率有所降低。最近发现了一个@EntityGraph注解，在接口中通过@EntityGraph注解来指定加载策略，这可以在不改变实体默认加载策略的情况下，为特定的查询方法指定加载行为，这样SQL直接就会关联到另一张表，当需要使用这个实体的时候就不会再次查询数据库了。]]></description><category></category></item><item><title><![CDATA[EasyExcel读取不到空白行的问题]]></title><link>https://blog.youkuaiyun.com/sbin456/article/details/136740899</link><guid>https://blog.youkuaiyun.com/sbin456/article/details/136740899</guid><author>sbin456</author><pubDate>Fri, 15 Mar 2024 15:21:25 +0800</pubDate><description><![CDATA[只需要加上 context.readWorkbookHolder().setIgnoreEmptyRow(false) 即可。]]></description><category></category></item><item><title><![CDATA[PostgreSQL创建分区表，并插入大量数据]]></title><link>https://blog.youkuaiyun.com/sbin456/article/details/134464266</link><guid>https://blog.youkuaiyun.com/sbin456/article/details/134464266</guid><author>sbin456</author><pubDate>Fri, 17 Nov 2023 15:34:46 +0800</pubDate><description><![CDATA[插入数据sql参考：https://pgfans.cn/a/1726。插入随机日期和随机金额数据，每次插入2190001条数据。原文中有中类型的随机数据插入可供参考。创建分区表，按日期范围分区。]]></description><category></category></item><item><title><![CDATA[Hystrix配置错误导致高并发场景下Gateway网关调用其他服务时迅速被降级]]></title><link>https://blog.youkuaiyun.com/sbin456/article/details/129727280</link><guid>https://blog.youkuaiyun.com/sbin456/article/details/129727280</guid><author>sbin456</author><pubDate>Thu, 23 Mar 2023 11:41:15 +0800</pubDate><description><![CDATA[断路器检测的基础请求值，只有时间窗口内的请求数达到这个阈值时，才会判定错误率，否则比如只有一两个请求，即便都失败了，也不会打开断路器，因为基数太少了，默认20。压力测试的时候发现，异常率非常的高，30并发异常率高达70%。为了排查这个问题，直接跳过了网关去压测业务服务，发现异常率为0，初步判断问题出在网关上。默认的阈值太小，超时时间也很短，所以导致大量请求都判断为超时，错误率升高后触发了熔断。#服务超时时间，单位毫秒，默认1000。# 错误百分比，超过就会短路，默认值50。重点就在这几个参数上。]]></description><category></category></item><item><title><![CDATA[JAVA 把HTML富文本格式字符串转换为MARKDOWN格式字符串]]></title><link>https://blog.youkuaiyun.com/sbin456/article/details/118761922</link><guid>https://blog.youkuaiyun.com/sbin456/article/details/118761922</guid><author>sbin456</author><pubDate>Thu, 15 Jul 2021 16:23:22 +0800</pubDate><description><![CDATA[项目遇到的新问题，原有数据是HTML的富文本内容，需要在钉钉上用MD格式显示出来。

找了一下午，在github上找到了一个很有用的包，支持Gradle和Maven安装依赖。

github链接：https://github.com/furstenheim/copy-down

方便懒人使用，简单贴一下使用方法（其实github上作者写的更清晰详细，我主要也是为了自己记录）。


&lt;dependencies&gt;
    &lt;dependency&gt;
        &lt;groupId&]]></description><category></category></item><item><title><![CDATA[简记springboot和springcloud版本号升级]]></title><link>https://blog.youkuaiyun.com/sbin456/article/details/118358400</link><guid>https://blog.youkuaiyun.com/sbin456/article/details/118358400</guid><author>sbin456</author><pubDate>Wed, 30 Jun 2021 12:34:23 +0800</pubDate><description><![CDATA[起因由一个漏洞检测，需要升级spring的版本号。



项目用的springcloud alibaba套装，所以打算直接升springboot和springcloud的版本号来解决此问题。

    项目原版本号如下:


&lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
&lt;artifactId&gt;spring-boot-starter-parent&lt;/artifactId&gt;
&lt...]]></description><category></category></item><item><title><![CDATA[Spring WebClient，异步POST请求代码段]]></title><link>https://blog.youkuaiyun.com/sbin456/article/details/109615201</link><guid>https://blog.youkuaiyun.com/sbin456/article/details/109615201</guid><author>sbin456</author><pubDate>Wed, 11 Nov 2020 12:09:23 +0800</pubDate><description><![CDATA[最近要在后台写一个异步POST请求，发现原来的AsyncResttemplate过时了，说明文档中提到了替代类WebClient。

于是查找文档，写了一个DEMO。下面是部分代码段。

POST请求


String url = configStorage.getApiUrl(WxCpApiPathConsts.Tp.GET_SUITE_TOKEN);
			Map&lt;String, String&gt; params = new HashMap&lt;String, String&gt;();
		]]></description><category></category></item><item><title><![CDATA[RabbitMQ 重复ACK异常解决]]></title><link>https://blog.youkuaiyun.com/sbin456/article/details/109237192</link><guid>https://blog.youkuaiyun.com/sbin456/article/details/109237192</guid><author>sbin456</author><pubDate>Fri, 23 Oct 2020 10:28:32 +0800</pubDate><description><![CDATA[最近搭了两个项目，处理分布式事务的时候用到的RabbitMQ，发现在手动ACK的时候抛出了如下异常：

Channel shutdown: channel error; protocol method: #method

(reply-code=406, reply-text=PRECONDITION_FAILED – unknown delivery tag 1, class-id=60, method-id=80)



这个异常不影响代码的运行和结果，但是有个错误总归要解决。

这个异常其实是进行了.]]></description><category></category></item><item><title><![CDATA[记一次druid连接池配置问题引发服务假死的定位、分析、解决过程]]></title><link>https://blog.youkuaiyun.com/sbin456/article/details/105657639</link><guid>https://blog.youkuaiyun.com/sbin456/article/details/105657639</guid><author>sbin456</author><pubDate>Tue, 21 Apr 2020 16:20:55 +0800</pubDate><description><![CDATA[一、前言

    记录一次服务假死的整个排查过程，服务基础为spring boot + druid + 多数据源切换，在请求过多（尤其是长事务请求）时，服务出现请求无响应的状况，之前未完结的查询也没有任何返回结果。

二、定位问题原因

    问题出现时，表现如下图，后台无任何报错，sql语句戛然而止，后续的查询被中断。这时如果再次发起某个请求，后台服务处于大部分时间不能...]]></description><category></category></item><item><title><![CDATA[Jmater压力测试安装与简单使用]]></title><link>https://blog.youkuaiyun.com/sbin456/article/details/103973566</link><guid>https://blog.youkuaiyun.com/sbin456/article/details/103973566</guid><author>sbin456</author><pubDate>Tue, 14 Jan 2020 15:56:50 +0800</pubDate><description><![CDATA[一、安装

官网下载地址:http://jmeter.apache.org/download_jmeter.cgi

我选择的是5.2.1版本, 需要java8以上环境



解压后，找到文件夹下bin目录中的jmeter.bat，双击运行，即可打开JMeter的 GUI



选项可修改语言为中文简体



二、简单使用

1.在“TestPlan”上右键 【添加】--&gt;【线程（用户）】...]]></description><category></category></item><item><title><![CDATA[element ui table嵌套多个select，包含动态列]]></title><link>https://blog.youkuaiyun.com/sbin456/article/details/101425366</link><guid>https://blog.youkuaiyun.com/sbin456/article/details/101425366</guid><author>sbin456</author><pubDate>Thu, 26 Sep 2019 10:28:18 +0800</pubDate><description><![CDATA[先来看一下效果图，前面的部分是普通列，“工艺”、“模面”、“结构”三列是查询得到得动态列



vue部分代码

关键点在于el-select中得v-model部分 需要使用scope.row[scope.column.property]来绑定某一个单元格，否则按网上大部分文章中使用scope.row.xxx会让整行的下拉都随某一个下拉值的改变而改变


&lt;el-table
      :...]]></description><category></category></item><item><title><![CDATA[java生成图形验证码]]></title><link>https://blog.youkuaiyun.com/sbin456/article/details/100596972</link><guid>https://blog.youkuaiyun.com/sbin456/article/details/100596972</guid><author>sbin456</author><pubDate>Sat, 07 Sep 2019 14:15:14 +0800</pubDate><description><![CDATA[参考的原文地址https://www.jianshu.com/p/45f9c4ffdeba

项目原来使用的验证码不够清晰，参考了上面文章之后，将验证码改为字符串验证。

先看一下修改前后的效果。

修改前：



修改后:



下面是修改后的代码

POM(未写出和验证码无关的内容)


<properties>
	<kaptcha.version>2.3.2<...]]></description><category></category></item><item><title><![CDATA[spring自动装配空指针异常解决]]></title><link>https://blog.youkuaiyun.com/sbin456/article/details/84752361</link><guid>https://blog.youkuaiyun.com/sbin456/article/details/84752361</guid><author>sbin456</author><pubDate>Mon, 03 Dec 2018 10:58:21 +0800</pubDate><description><![CDATA[在某些特殊的类中，使用@Autowired自动装配的类在调用其中方法的时候会出现空指针的异常

可以加入下面的代码


    @Autowired
	private FIXDieMaintainService dieMaintainService;

    @Override
	public Object execute() throws Exception {

		// 解决自动注入空指针...]]></description><category></category></item><item><title><![CDATA[tomcat启动闪退解决办法]]></title><link>https://blog.youkuaiyun.com/sbin456/article/details/82752924</link><guid>https://blog.youkuaiyun.com/sbin456/article/details/82752924</guid><author>sbin456</author><pubDate>Tue, 18 Sep 2018 10:17:08 +0800</pubDate><description><![CDATA[排除环境问题后，如果还是无法启动，可参考在startup.bat和shutdown.bat第一行加入代码

SET JAVA_HOME=jdk目录
SET CATALINA_HOME=tomcat解压目录

比如：

SET JAVA_HOME=C:\develop\java\1.8.0_45\jdk1.8.0_45
SET CATALINA_HOME=D:\apache-tomcat-8.0.3...]]></description><category></category></item><item><title><![CDATA[解决Spring+Quartz无法自动注入bean问题]]></title><link>https://blog.youkuaiyun.com/sbin456/article/details/82219844</link><guid>https://blog.youkuaiyun.com/sbin456/article/details/82219844</guid><author>sbin456</author><pubDate>Thu, 30 Aug 2018 13:21:09 +0800</pubDate><description><![CDATA[原文地址： https://www.cnblogs.com/feiqihang/p/5358100.html

工作遇到的问题，使用Quartz定时任务，如果需要用到自动注入，会报空指针异常，看了原文博主的方法，只需要加上

SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);

就能正常注入了。


@S...]]></description><category></category></item><item><title><![CDATA[springcloud和springboot入门]]></title><link>https://blog.youkuaiyun.com/sbin456/article/details/79045638</link><guid>https://blog.youkuaiyun.com/sbin456/article/details/79045638</guid><author>sbin456</author><pubDate>Fri, 12 Jan 2018 16:34:31 +0800</pubDate><description><![CDATA[2小时学会springboot
慕课网 http://www.imooc.com/learn/767
史上最简单的springCloud教程
http://blog.youkuaiyun.com/forezp/article/details/70148833 
出自方志朋的博客]]></description><category></category></item><item><title><![CDATA[JS模拟按下回车方法]]></title><link>https://blog.youkuaiyun.com/sbin456/article/details/78901400</link><guid>https://blog.youkuaiyun.com/sbin456/article/details/78901400</guid><author>sbin456</author><pubDate>Tue, 26 Dec 2017 13:49:54 +0800</pubDate><description><![CDATA[项目中需要用到模拟按下回车的方法，网上找了好多都是监听回车事件的，不过最终还是让我再某大佬的帖子里找到了这段代码。
记录一下，以免以后又忘了。


这个是大佬的原文，里面的ctrlKey没试过，看意思大概是ctrl键
var evt = $.Event('keydown', {keyCode: 13, ctrlKey: true});
$(document).trigger(evt);]]></description><category></category></item><item><title><![CDATA[学习JPA]]></title><link>https://blog.youkuaiyun.com/sbin456/article/details/74965639</link><guid>https://blog.youkuaiyun.com/sbin456/article/details/74965639</guid><author>sbin456</author><pubDate>Tue, 11 Jul 2017 14:29:29 +0800</pubDate><description><![CDATA[转载原文地址: http://www.cnblogs.com/xingqi/p/3929386.html]]></description><category></category></item><item><title><![CDATA[Java中获取完整的url]]></title><link>https://blog.youkuaiyun.com/sbin456/article/details/74518305</link><guid>https://blog.youkuaiyun.com/sbin456/article/details/74518305</guid><author>sbin456</author><pubDate>Thu, 06 Jul 2017 09:44:47 +0800</pubDate><description><![CDATA[HttpServletRequest httpRequest=(HttpServletRequest)request;  
          
String strBackUrl = "http://" + request.getServerName() //服务器地址  
                    + ":"   
                    + request.ge]]></description><category></category></item><item><title><![CDATA[url中包含#字符等特殊字符导致请求报错的解决方案]]></title><link>https://blog.youkuaiyun.com/sbin456/article/details/72851517</link><guid>https://blog.youkuaiyun.com/sbin456/article/details/72851517</guid><author>sbin456</author><pubDate>Sat, 03 Jun 2017 13:05:30 +0800</pubDate><description><![CDATA[今天在写流程的时候发现了这样一个问题，一个流程的消息我们通常会用这个流程的名称、编码之类的做区别，
比如: 产品制造大纲: 编制[ #2 前缘肋] 




上图前两行应该是正确的显示
下面都是我测试时候失败的结果,点击这个链接的时候会报一个空指针，因为我后面的参数没有成功请求


由于在url中特殊符号都有特殊意义或者被认为是不安全的字符，所以在拼接url时应当替换出url中]]></description><category></category></item></channel></rss>