<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[借物小人的博客]]></title><description><![CDATA[记录学习的点滴]]></description><link>https://blog.youkuaiyun.com/u012894692</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u012894692]]></copyright><item><title><![CDATA[git 代码统计]]></title><link>https://blog.youkuaiyun.com/u012894692/article/details/120215550</link><guid>https://blog.youkuaiyun.com/u012894692/article/details/120215550</guid><author>u012894692</author><pubDate>Fri, 10 Sep 2021 09:53:47 +0800</pubDate><description><![CDATA[查询所有人指定时间段的代码
git log  --since=2019-01-01 --until=2021-09-10 --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | grep "\(.html\|.java\|.xml\|.properties\)$" | awk '{ add += $1; subs += $]]></description><category></category></item><item><title><![CDATA[Spring Data JPA 中 findById、getOne、findOne 的区别]]></title><link>https://blog.youkuaiyun.com/u012894692/article/details/118796713</link><guid>https://blog.youkuaiyun.com/u012894692/article/details/118796713</guid><author>u012894692</author><pubDate>Fri, 16 Jul 2021 14:33:56 +0800</pubDate><description><![CDATA[转载文献：Spring Data JPA 中 findById、getOne、findOne 的区别
文章目录1、findById 方法2、getOne 方法3、findOne 方法4、总结
1、findById 方法
Optional&lt;T&gt; findById(ID id);

findById 方法会立即（EAGER）访问数据库，并返回和指定 ID 关联的实体对象；如果没有找到，则返回 Optional.empty()。
2、getOne 方法
T getOne(ID id);

getOne]]></description><category></category></item><item><title><![CDATA[apache poi 和EasyExcel 的使用]]></title><link>https://blog.youkuaiyun.com/u012894692/article/details/116276315</link><guid>https://blog.youkuaiyun.com/u012894692/article/details/116276315</guid><author>u012894692</author><pubDate>Tue, 15 Jun 2021 16:57:35 +0800</pubDate><description><![CDATA[文章目录apache poi隐藏sheet做下拉列表EasyExcel超链接跳转sheet页自定义类型转换隐藏sheet做下拉列表
apache poi
隐藏sheet做下拉列表
EasyExcel
超链接跳转sheet页
自定义类型转换
隐藏sheet做下拉列表

]]></description><category></category></item><item><title><![CDATA[idea做springBoot集成Activiti开发]]></title><link>https://blog.youkuaiyun.com/u012894692/article/details/116276598</link><guid>https://blog.youkuaiyun.com/u012894692/article/details/116276598</guid><author>u012894692</author><pubDate>Tue, 15 Jun 2021 15:52:04 +0800</pubDate><description><![CDATA[文章目录idea环境搭建绘制流程图
idea环境搭建
绘制流程图
部署时会报错cvc-complex-type.2.4.a: 发现了以元素 'process' 开头的无效内容

]]></description><category></category></item><item><title><![CDATA[Java8 Stream之Collectors]]></title><link>https://blog.youkuaiyun.com/u012894692/article/details/117731276</link><guid>https://blog.youkuaiyun.com/u012894692/article/details/117731276</guid><author>u012894692</author><pubDate>Tue, 15 Jun 2021 15:09:32 +0800</pubDate><description><![CDATA[Collectors 是 Java 8 加入的操作类，位于 java.util.stream 包下。它会根据不同的策略将元素收集归纳起来，比如最简单常用的是将元素装入Map、Set、List等可变容器中

]]></description><category></category></item><item><title><![CDATA[操作集合工具类 Collectinos]]></title><link>https://blog.youkuaiyun.com/u012894692/article/details/117717616</link><guid>https://blog.youkuaiyun.com/u012894692/article/details/117717616</guid><author>u012894692</author><pubDate>Wed, 09 Jun 2021 09:35:02 +0800</pubDate><description><![CDATA[文章目录排序操作查找、替换操作
排序操作

void reverse(List list)
反转list中元素的顺序,[2, 3, 1, 4]-&gt; [4, 1, 3, 2]
void shuffle(List list)
随机排序，每次结果不同
void sort(List list)
根据元素自然顺序按升序排序
void sort(List list, Comparator c)
根据comparator产生的顺序进行排序
void swap(List list, int i, int j)
将i处]]></description><category></category></item><item><title><![CDATA[普通类、接口、抽象类的内部类比较]]></title><link>https://blog.youkuaiyun.com/u012894692/article/details/117457302</link><guid>https://blog.youkuaiyun.com/u012894692/article/details/117457302</guid><author>u012894692</author><pubDate>Wed, 02 Jun 2021 00:06:19 +0800</pubDate><description><![CDATA[文章目录普通类内部类接口内部类抽象类内部类创建内部类对象new 外部类().new 内部类()new 外部类.内部类()
以下测试类都在一个包下
普通类内部类
public class CommonClass {
    /** 省略访问控制符的内部类，只能被与外部类处于同一个包中的其他类访问 */
    static class StaticA {  }
    /** 使用protected修饰的内部类，可被与外部类处于同一个包中的其他类和外部类的子类访问 */
    protected class]]></description><category></category></item><item><title><![CDATA[@FeignClient 中实现上传文件]]></title><link>https://blog.youkuaiyun.com/u012894692/article/details/116002535</link><guid>https://blog.youkuaiyun.com/u012894692/article/details/116002535</guid><author>u012894692</author><pubDate>Thu, 22 Apr 2021 11:26:15 +0800</pubDate><description><![CDATA[转载自：Spring Cloud Feign的文件上传实现 和 Spring Cloud中FeignClient添加上传文件功能
有两种方案可以实现：

feign-form-spring库来做
feign.Feign来实现

方案一：
服务消费者
&lt;dependency&gt;
   &lt;groupId&gt;io.github.openfeign.form&lt;/groupId&gt;
   &lt;artifactId&gt;feign-form-spring&lt;/artifactId]]></description><category></category></item><item><title><![CDATA[@RequestParam和@RequestPart的区别]]></title><link>https://blog.youkuaiyun.com/u012894692/article/details/115875674</link><guid>https://blog.youkuaiyun.com/u012894692/article/details/115875674</guid><author>u012894692</author><pubDate>Mon, 19 Apr 2021 22:36:35 +0800</pubDate><description><![CDATA[@RequestPart

@RequestPart这个注解用在multipart/form-data表单提交请求的方法上。
支持的请求方法的方式MultipartFile，属于Spring的MultipartResolver类。这个请求是通过http协议传输的

@RequestParam

@RequestParam支持’application/json’，也同样支持multipart/form-data请求

区别


当请求方法的请求参数类型不是String 或 MultipartFile / Pa]]></description><category></category></item><item><title><![CDATA[spring boot 参数校验]]></title><link>https://blog.youkuaiyun.com/u012894692/article/details/114903685</link><guid>https://blog.youkuaiyun.com/u012894692/article/details/114903685</guid><author>u012894692</author><pubDate>Thu, 15 Apr 2021 00:14:35 +0800</pubDate><description><![CDATA[转载：Spring Boot 参数校验
背景介绍
开发过程中，后台参数校验必不可少，经常看到如下代码：
public BaseResult save(User user) {
	if (StringUtils.isBlank(user.name)) {
		return BaseResult.failure("用户名不能为空");
	}
	if (StringUtils.isBlank(user.password)) {
		return BaseResult.failure("密码不能为空");
	}
	]]></description><category></category></item><item><title><![CDATA[java8 list.forEach() 修改值失败]]></title><link>https://blog.youkuaiyun.com/u012894692/article/details/115392091</link><guid>https://blog.youkuaiyun.com/u012894692/article/details/115392091</guid><author>u012894692</author><pubDate>Fri, 02 Apr 2021 10:11:54 +0800</pubDate><description><![CDATA[文章目录测试代码结果原因
测试代码
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {

    private String name;

    public static void main(String[] args) {
        List&lt;User&gt; list = new ArrayList&lt;&gt;();
        list.add(new User("bb"));
        li]]></description><category></category></item><item><title><![CDATA[left join 导致的分页错误]]></title><link>https://blog.youkuaiyun.com/u012894692/article/details/115304866</link><guid>https://blog.youkuaiyun.com/u012894692/article/details/115304866</guid><author>u012894692</author><pubDate>Mon, 29 Mar 2021 18:22:47 +0800</pubDate><description><![CDATA[文章目录行转列解决先分页再组装
背景：有规则表t_rule,标签表t_label,中间表t_rule_label,根据t_rule的name和t_label表的name组合查询规则
t_rule表数据




id
name




1
rule1


2
rule2


t_label表数据




id
name




1
label1


2
label2


t_rule_label表数据




rule_id
label_id




1
1


1
2


2
1


2
2


使用myb]]></description><category></category></item><item><title><![CDATA[git merge 测试]]></title><link>https://blog.youkuaiyun.com/u012894692/article/details/115162314</link><guid>https://blog.youkuaiyun.com/u012894692/article/details/115162314</guid><author>u012894692</author><pubDate>Wed, 24 Mar 2021 11:16:27 +0800</pubDate><description><![CDATA[文章目录master添加，dev添加，冲突master添加，dev不变master添加，dev删除，冲突master修改，dev添加，冲突master修改，dev修改，冲突master删除，dev添加
从master拉出分支dev，master和dev操作同一个类，然后合并分支，测试是否有代码丢失情况
总结论：合并分支dev到master，dev修改、删除时必定会冲突，因为涉及更改了master原有数据；dev添加时，需要看添加数据位置，改变master顺序时也会冲突
master添加，dev添加，冲突
结]]></description><category></category></item><item><title><![CDATA[@PostConstruct和@PreDestroy注解]]></title><link>https://blog.youkuaiyun.com/u012894692/article/details/113560403</link><guid>https://blog.youkuaiyun.com/u012894692/article/details/113560403</guid><author>u012894692</author><pubDate>Tue, 02 Feb 2021 15:48:46 +0800</pubDate><description><![CDATA[装载自：@PostConstruct和@PreDestroy注解
从Java EE5规范开始，Servlet增加了两个影响Servlet生命周期的注解（Annotation）：@PostConstruct和@PreConstruct。
这两个注解被用来修饰一个非静态的void()方法，而且这个方法不能有抛出异常声明
@PostConstruct
被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行，并且只会被服务器调用一次，类似于Servlet的init()方法。
被@PostCo]]></description><category></category></item><item><title><![CDATA[lombok的@Builder导致mybatis映射出错]]></title><link>https://blog.youkuaiyun.com/u012894692/article/details/113372372</link><guid>https://blog.youkuaiyun.com/u012894692/article/details/113372372</guid><author>u012894692</author><pubDate>Fri, 29 Jan 2021 11:04:53 +0800</pubDate><description><![CDATA[参考文献：
使用lombok的@Builder注解导致获取数据时mybatis映射出错
使用Lombok @Builder注解导致默认值无效
错误信息：

Error attempting to get column ‘express’ from result set.  Cause:
java.sql.SQLException: Cannot convert value ‘如果  姓名 等于 参数_用户信息.姓名  则  (  年龄 大于 18 或者 性别 等于 常量_性别.男  )或者 职业 等于 常量]]></description><category></category></item><item><title><![CDATA[springboot单元测试]]></title><link>https://blog.youkuaiyun.com/u012894692/article/details/113353201</link><guid>https://blog.youkuaiyun.com/u012894692/article/details/113353201</guid><author>u012894692</author><pubDate>Thu, 28 Jan 2021 18:08:10 +0800</pubDate><description><![CDATA[参考文档：
JUnit 5 Jupiter API
junit4和junit5的注解比较




JUnit 5
JUnit 4
说明




@Test
@Test
被注解的方法是一个测试方法。与 JUnit 4 相同。


@BeforeAll
@BeforeClass
被注解的（静态）方法将在当前类中的所有 @Test 方法前执行一次。


@BeforeEach
@Before
被注解的方法将在当前类中的每个 @Test 方法前执行。


@AfterEach
@After
被注解的方法将在当前类中]]></description><category></category></item><item><title><![CDATA[前端动态打印后台日志]]></title><link>https://blog.youkuaiyun.com/u012894692/article/details/108655840</link><guid>https://blog.youkuaiyun.com/u012894692/article/details/108655840</guid><author>u012894692</author><pubDate>Tue, 24 Nov 2020 11:10:07 +0800</pubDate><description><![CDATA[文章目录前端动态打印后台日志
前端动态打印后台日志

]]></description><category></category></item><item><title><![CDATA[hibernate-validator和validation-api]]></title><link>https://blog.youkuaiyun.com/u012894692/article/details/109806620</link><guid>https://blog.youkuaiyun.com/u012894692/article/details/109806620</guid><author>u012894692</author><pubDate>Sun, 22 Nov 2020 17:34:24 +0800</pubDate><description><![CDATA[错误：
spring-boot-starter-web的2.1.5.RELEASE版本可以直接使用校验
spring-boot-starter-web的2.3.5.RELEASE版本报错
原因
缺少jar
前端到后台数据的校验，需要引入validation-api和hibernate-validator的jar
在spring-boot-starter-web的2.1.5.RELEASE版本中包含了hibernate-validator的6.0.16版本，

hibernate-validator的6.0.]]></description><category></category></item><item><title><![CDATA[springMVC先前端传递参数]]></title><link>https://blog.youkuaiyun.com/u012894692/article/details/109804082</link><guid>https://blog.youkuaiyun.com/u012894692/article/details/109804082</guid><author>u012894692</author><pubDate>Thu, 19 Nov 2020 10:56:08 +0800</pubDate><description><![CDATA[ModelAndView
@RequestMapping(value = "view")
public ModelAndView view() {
    ModelAndView mv = new ModelAndView();
    mv.setViewName("index"); //视图名
    mv.addObject("name", "ljh");
    return mv;
}

ModelAndView 有多个构造器

ModelAndView(String viewName)
Mod]]></description><category></category></item><item><title><![CDATA[springboot配置公共配置]]></title><link>https://blog.youkuaiyun.com/u012894692/article/details/109676736</link><guid>https://blog.youkuaiyun.com/u012894692/article/details/109676736</guid><author>u012894692</author><pubDate>Fri, 13 Nov 2020 17:39:53 +0800</pubDate><description><![CDATA[场景
多个环境切换时有些配置是共用的，不需要都配置
如下3个文件只有数据库不同，可以抽取一个公共的配置：

application-dev.properties：开发环境
application-test.properties：测试环境
application-prod.properties：生产环境

application.properyies通过spring.profiles.active来具体激活一个或者多个配置文件，如果没有指定任何profile的配置文件的话，spring boot默认会启动ap]]></description><category></category></item></channel></rss>