<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[直须看尽洛城花]]></title><description><![CDATA[始共春风容易别]]></description><link>https://blog.youkuaiyun.com/SudaDays</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; SudaDays]]></copyright><item><title><![CDATA[增强 Spring @Scheduled 注解，支持分布式定时任务]]></title><link>https://blog.youkuaiyun.com/SudaDays/article/details/126855960</link><guid>https://blog.youkuaiyun.com/SudaDays/article/details/126855960</guid><author>SudaDays</author><pubDate>Sun, 09 Oct 2022 11:36:59 +0800</pubDate><description><![CDATA[增强 Spring @Scheduled 注解，使其支持分布式的定时调度。服务有多个实例的情况下，不同实例之间不会重复执行相同的定时任务。]]></description><category></category></item><item><title><![CDATA[微服务下 Spring Boot Admin 部署指南]]></title><link>https://blog.youkuaiyun.com/SudaDays/article/details/122255455</link><guid>https://blog.youkuaiyun.com/SudaDays/article/details/122255455</guid><author>SudaDays</author><pubDate>Fri, 31 Dec 2021 14:18:57 +0800</pubDate><description><![CDATA[客户端
此处客户端是指需要被 Spring Boot Admin 监控的服务

引入 actuator 依赖：

&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;


开放所有监控端点：

management:
  end]]></description><category></category></item><item><title><![CDATA[在 Spring Boot 中使用注解轻松上传和下载 Excel 文件]]></title><link>https://blog.youkuaiyun.com/SudaDays/article/details/110367270</link><guid>https://blog.youkuaiyun.com/SudaDays/article/details/110367270</guid><author>SudaDays</author><pubDate>Mon, 30 Nov 2020 09:22:42 +0800</pubDate><description><![CDATA[在 Spring Boot 中使用 @RequestExcel 和 @ResponseExcel 注解轻松上传和下载 Excel 文件。
下载示例，类似于 @ResponseBody ：
@RequestMapping("/download")
@ResponseExcel({"name", "book.name", "book.author"})
public List&lt;Character&gt; download() {
    return listCharacters();
}

上传示例，类]]></description><category></category></item><item><title><![CDATA[移动端图片方向旋转和图片等比例压缩]]></title><link>https://blog.youkuaiyun.com/SudaDays/article/details/104253694</link><guid>https://blog.youkuaiyun.com/SudaDays/article/details/104253694</guid><author>SudaDays</author><pubDate>Mon, 10 Feb 2020 19:53:44 +0800</pubDate><description><![CDATA[问题
移动端选择照片上传，经常遇到这两个问题：照片方向错误，需要旋转，照片尺寸过大，需要压缩后像后台传输。
解决方法
针对这两个常见的问题，整理为以下函数：
/**
 * 旋转并等比例压缩
 * @param img
 * @param canvas
 * @param orientation 引入exif.js，可以通过 orientation = EXIF.getTag(this, 'Orie...]]></description><category></category></item><item><title><![CDATA[H5 图片裁剪 - cropper 插件使用]]></title><link>https://blog.youkuaiyun.com/SudaDays/article/details/104194286</link><guid>https://blog.youkuaiyun.com/SudaDays/article/details/104194286</guid><author>SudaDays</author><pubDate>Thu, 06 Feb 2020 13:33:27 +0800</pubDate><description><![CDATA[本篇文章需要 js，jquery 等基础

cropper 下载
cropper 是一款 js 插件，下载地址：https://github.com/fengyuanchen/cropper/blob/master/README.md
jquery 下 cropper 使用步骤
引入文件
&lt;script src="/path/to/jquery.js"&gt;&lt;/script&gt;...]]></description><category></category></item><item><title><![CDATA[SpringBoot2.x实践之多数据源配置]]></title><link>https://blog.youkuaiyun.com/SudaDays/article/details/100072452</link><guid>https://blog.youkuaiyun.com/SudaDays/article/details/100072452</guid><author>SudaDays</author><pubDate>Mon, 26 Aug 2019 10:51:56 +0800</pubDate><description><![CDATA[Spring 要使用多数据源，需要在 Spring 容器中放入多个 DataSource。DataSource 是 javax.sql 包中的一个接口，这个接口有多种实现，常见的有 c3p0 中的 ComboPooledDataSource 连接池，druid 的 DruidDataSource ，都实现了 DataSource  接口。
我们以 druid 举例，通过 @Bean 标签在 Spr...]]></description><category></category></item><item><title><![CDATA[Spring AOP 通知 同一 Aspect 和不同 Aspect 中通知的执行顺序]]></title><link>https://blog.youkuaiyun.com/SudaDays/article/details/99636954</link><guid>https://blog.youkuaiyun.com/SudaDays/article/details/99636954</guid><author>SudaDays</author><pubDate>Thu, 15 Aug 2019 15:27:47 +0800</pubDate><description><![CDATA[AOP 的通知类型
同一切面内通知的执行顺序
AOP 的通知共五种，同一切面内我们直接按照执行顺序介绍：
1.环绕通知A
@Around
环绕通知比较特殊，在环绕通知里面我们需要手动调用目标函数，所以我们可以把环绕通知的执行顺序看作：环绕通知A（目标函数执行之前的语句） -&gt; 目标函数 -&gt; 环绕通知B（目标函数执行之后的语句）
2.前置通知
@Before
此处执行目标函数
3.环绕...]]></description><category></category></item><item><title><![CDATA[Spring JPA 实体类 save 方法都执行了那些语句？]]></title><link>https://blog.youkuaiyun.com/SudaDays/article/details/97152145</link><guid>https://blog.youkuaiyun.com/SudaDays/article/details/97152145</guid><author>SudaDays</author><pubDate>Wed, 24 Jul 2019 19:35:16 +0800</pubDate><description><![CDATA[假设 user 和 role 两个实体是多对多关系。通过 @ManyToMany 注释，JPA 会自动生成并维护 user 和 role 的关系表。
单个实体类的 insert / update
insert 或 update 都是通过调用 JpaRepository 的 save 方法实现的。
对于 save(user) 方法


假如 user 的主键字段（@Id 修饰的字段）为空，是新增方法...]]></description><category></category></item><item><title><![CDATA[RabbitMQ安装后无法访问15672端口]]></title><link>https://blog.youkuaiyun.com/SudaDays/article/details/91126792</link><guid>https://blog.youkuaiyun.com/SudaDays/article/details/91126792</guid><author>SudaDays</author><pubDate>Fri, 07 Jun 2019 11:57:45 +0800</pubDate><description><![CDATA[切换到RabbitMQ的安装目录 sbin 目录下
执行：
rabbitmq-plugins enable rabbitmq_management

即可打开管理界面。

]]></description><category></category></item><item><title><![CDATA[POI快速入门教程 | HSSF，XSSF，SXSSF的区别]]></title><link>https://blog.youkuaiyun.com/SudaDays/article/details/90669237</link><guid>https://blog.youkuaiyun.com/SudaDays/article/details/90669237</guid><author>SudaDays</author><pubDate>Wed, 29 May 2019 13:21:43 +0800</pubDate><description><![CDATA[POI有三种API：

POI-HSSF
POI-XSSF
SXSSF

官方文档的说法：

HSSF是POI项目的Excel '97（-2007）文件格式的纯Java实现。XSSF是POI Project的Excel 2007 OOXML（.xlsx）文件格式的纯Java实现。


自3.8-beta3以来，POI提供了基于XSSF构建的低内存占用SXSSF API。
SXSSF是XSSF的AP...]]></description><category></category></item><item><title><![CDATA[Spring项目中文乱码解决方法]]></title><link>https://blog.youkuaiyun.com/SudaDays/article/details/89880989</link><guid>https://blog.youkuaiyun.com/SudaDays/article/details/89880989</guid><author>SudaDays</author><pubDate>Mon, 06 May 2019 13:43:53 +0800</pubDate><description><![CDATA[编码问题主要涉及两个地方。
第一个，项目的编码过滤器。
org.springframework.web.filter.CharacterEncodingFilter
第二个，tomcat的URIEncoding配置，这个换环境的时候常常忽略。
&lt;Connector port="8080" protocol="HTTP/1.1"   
               maxThreads="15...]]></description><category></category></item><item><title><![CDATA[java.lang 包中异常详解]]></title><link>https://blog.youkuaiyun.com/SudaDays/article/details/89370879</link><guid>https://blog.youkuaiyun.com/SudaDays/article/details/89370879</guid><author>SudaDays</author><pubDate>Thu, 18 Apr 2019 08:57:42 +0800</pubDate><description><![CDATA[基本类型
除以0
ArithmeticException
类或对象
空指针异常
NullPointerException
接口
没有实现Cloneable接口而调用clone()方法
CloneNotSupportedException
数组
声明数组大小为负
NegativeArraySizeException
数组越界
ArrayIndexOutOfBoundsException（继承自Ind...]]></description><category></category></item><item><title><![CDATA[Java反射详解]]></title><link>https://blog.youkuaiyun.com/SudaDays/article/details/87918783</link><guid>https://blog.youkuaiyun.com/SudaDays/article/details/87918783</guid><author>SudaDays</author><pubDate>Mon, 25 Feb 2019 19:08:39 +0800</pubDate><description><![CDATA[Java反射是很重要的一部分内容。许多框架都是基于Java反射机制加上各种设计模式，比如常用的工厂模式，代理模式等，来实现框架强大的功能。
class/interface的数据类型是Class，class是Java关键字而Class是一种类型（Type）。
Class是什么？怎么创建？
JVM会为每一个加载的class文件创建Class类型的实例，相比于普通的类型，Class的构造方式是priva...]]></description><category></category></item><item><title><![CDATA[Java注解]]></title><link>https://blog.youkuaiyun.com/SudaDays/article/details/87919459</link><guid>https://blog.youkuaiyun.com/SudaDays/article/details/87919459</guid><author>SudaDays</author><pubDate>Mon, 25 Feb 2019 16:31:41 +0800</pubDate><description><![CDATA[框架中大量使用注解。
注解是什么？
注解（Annotation）是一种标注，可以配置参数，参数可以有默认值，如果参数名是value，则可以省略参数名称。
如何定义注解？
定义一个注解的格式如下
@Target(ElementType)
public @interface MyAnnotation {
		String value() default &amp;amp;quot;&amp;amp;quot;;
}

用来修饰注解的注解成为 元注解 ，...]]></description><category></category></item><item><title><![CDATA[服务器：基本的安全优化]]></title><link>https://blog.youkuaiyun.com/SudaDays/article/details/86490528</link><guid>https://blog.youkuaiyun.com/SudaDays/article/details/86490528</guid><author>SudaDays</author><pubDate>Mon, 25 Feb 2019 11:41:53 +0800</pubDate><description><![CDATA[1.SQL注入
SQL注入漏洞可使用SQLMAP进行排查。
解决方法：使用预编译语句，例如MyBatis
2.SQL语句泄露
常出现在参数错误的时候，未对SQL类型的错误进行拦截。
3.服务器版本泄露
4.框架版本漏洞
5.不必要的HTTP方法

...]]></description><category></category></item><item><title><![CDATA[OpenCV  OOM的解决方法]]></title><link>https://blog.youkuaiyun.com/SudaDays/article/details/86570284</link><guid>https://blog.youkuaiyun.com/SudaDays/article/details/86570284</guid><author>SudaDays</author><pubDate>Mon, 25 Feb 2019 11:29:40 +0800</pubDate><description><![CDATA[以我遇到的情况举例，i7-8750H核心数为6个，线程数为12个，而内存才8G。所以当所有cpu都跑起来的话，马上就会报错。
解决方法是禁用部分核心或者说禁用部分线程。

...]]></description><category></category></item><item><title><![CDATA[Java：中间缓存变量机制]]></title><link>https://blog.youkuaiyun.com/SudaDays/article/details/86499502</link><guid>https://blog.youkuaiyun.com/SudaDays/article/details/86499502</guid><author>SudaDays</author><pubDate>Thu, 17 Jan 2019 14:30:31 +0800</pubDate><description><![CDATA[对于如下程序片段
int j=0;
j=j++;

运行后j的值为0，其中原因就是因为Java用了中间变量缓存机制。
我们可以从整个过程描述为一个流

]]></description><category></category></item><item><title><![CDATA[Struts2注意事项：setter/getter大小写问题]]></title><link>https://blog.youkuaiyun.com/SudaDays/article/details/85052920</link><guid>https://blog.youkuaiyun.com/SudaDays/article/details/85052920</guid><author>SudaDays</author><pubDate>Mon, 17 Dec 2018 17:37:48 +0800</pubDate><description><![CDATA[在使用Struts2这个框架时候，前台向后台传参一般通过setter自动注入。
set方法一般使用驼峰命名法，将变量的首字母大写，但假如一个变量形如“uKey&amp;amp;amp;amp;quot;这种形式，正确的set方法应为setuKey()，假如写为setUKey()，部分低版本struts2会识别，而最新的struts2则找不到set方法导致注入失败。

...]]></description><category></category></item><item><title><![CDATA[Struts2为action实现文件下载功能]]></title><link>https://blog.youkuaiyun.com/SudaDays/article/details/82623448</link><guid>https://blog.youkuaiyun.com/SudaDays/article/details/82623448</guid><author>SudaDays</author><pubDate>Tue, 11 Sep 2018 11:38:52 +0800</pubDate><description><![CDATA[
&amp;amp;amp;amp;amp;lt;action name=&amp;amp;amp;amp;quot;你要监听的name&amp;amp;amp;amp;quot; class=&amp;amp;amp;amp;quot;你的Action&amp;amp;amp;amp;quot; method=&amp;amp;amp;amp;quot;你要执行的函数&amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;gt;
   &amp;amp;amp;amp;amp]]></description><category></category></item><item><title><![CDATA[Java语言：new一个对象时发生了什么]]></title><link>https://blog.youkuaiyun.com/SudaDays/article/details/81006483</link><guid>https://blog.youkuaiyun.com/SudaDays/article/details/81006483</guid><author>SudaDays</author><pubDate>Wed, 11 Jul 2018 20:35:32 +0800</pubDate><description><![CDATA[首先，讨论该类没有显式的继承任何类的情况。此时，JVM会检查是否已经加载了这个类，如果没有加载，就会加载该类，一个类只会被加载一次。加载该类的时候会按顺序初始化静态变量，并执行静态语句块，静态函数要被调用才会执行。假如静态变量或静态代码块初始化了一个类的话，会再次执行上面的过程。加载完类之后，开始生成对象，会按照顺序初始化成员变量，基本类型被初始化为0，引用类型被初始化为NULL，然后执行构造器。...]]></description><category></category></item></channel></rss>