Chuenhung的个人网站

chuenhung.github.io

Spring缓存相关注解

@Cacheable注解

对于一个使用@Cacheable标注的方法,Spring会在其被调用后将其返回值缓存起来,以保证下次利用同样的参数来执行该方法时可以直接从缓存中获取结果,而不需要再次执行该方法。
cacheNames和value这两个属性任意使用一个都可以,且必须指定,否则会报错。它们的作用可以理解为key的前缀。

1、key和value都指定

1
@Cacheable(key = "'testKey'", value = "testValue")

生成的Redis键格式为:testValue::testKey

在这里插入图片描述

2、key和cacheNames都指定

1
@Cacheable(cacheNames = {"testNames","testNamesTwo"}, key = "'testKey'")

会生成多个Redis键,格式为:testNames::testKey
在这里插入图片描述

阅读全文 »

对象List处理

List转为HashMap

利用Collectors.toMap方法实现,若重复Key则覆盖。

1
2
3
4
5
6
7
8
9
10
// 值为对象
Map<String, Account> map = accountList.stream().collect(Collectors.toMap(Account::getUsername, Function.identity(), (key1, key2) -> key2));
// 值为字段
Map<Long, String> map = accountList.stream().collect(Collectors.toMap(Account::getId, Account::getUsername,(key1, key2) -> key2));
// 自定义键值
Map<String, String> dbCompanyFiledMap = dbCompanyFiledList.stream()
.collect(Collectors.toMap(
companyFiled -> companyFiled.getCompanyId() + companyFiled.getCompanyFiled(),//键
AchievementCompanyFiled::getReGroupFiled, //值
(key1, key2) -> key2));
阅读全文 »

实现逻辑

自定义渲染策略实现逻辑:

  • 找到模板中的表格标签
  • render方法接收java中对应模板表格标签的所有list数据
  • 执行自定义渲染逻辑

参考代码

word模板如下:
在这里插入图片描述

阅读全文 »

Lambda表达式

为什么使用Lambda表达式

  • Lambda是一个匿名函数,相当于匿名内部类
  • 只有函数式接口(可以用@FunctionalInterface注解修饰) 可以使用Lambda表达式
  • 使用 Lambda省略了写实现类的繁琐步骤,可以写出更简洁、更灵活的代码,使Java的语言表达能力得到了提升。

Lambda表达式语法

Lambda 表达式在Java 语言中引入了一个新的操作符, “->”, 它将 Lambda 分为两个部分:
左侧:指定了 Lambda表达式的参数列表
右侧:指定了 Lambda体,即 Lambda表达式要执行的功能。

阅读全文 »
0%