mapstruct-plus
发表于|更新于
|浏览量:
让礼一寸,得礼一尺——曹操
分享一个框架mapstruct-plus:

可以很方便使用mapstruct

相关推荐
2022-01-20
设置并行流最大线程数
做你自己,因为别人都有人做了。——王尔德 我们可以使用如下方式获取并行流线程数 并行流线程数获取 如果我们需要更改,则可以设置系统属性: 1System.setProperty("java.util.concurrent.ForkJoinPool.common.parallelism", "8"); 例如此处设置为8 则再次获取 可以看到是8个子线程+1个主线程,也就是9个线程 还可以使用ForkJoinPool.getCommonPoolParallelism()直接获取ForkJoinPool中允许设置的最大线程数
2022-01-09
对null值友好的Collectors.groupingBy
一个人行走的范围,就是他的世界。——北岛 我们在使用Collectors.groupingBy时会遇到这种情况: 1Map<String, List<User>> map = Arrays.asList(new User(), null).stream().collect(Collectors.groupingBy(User::getName)); 为了避免这种情况,于是我自己实现了一个: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546@SafeVarargs@SuppressWarnings("unchecked")public static <T, K, D, A, M extends Map<K, D>> M listGroupBy(List<T> list, Function<T, K> sFunction, Collector<? super T,...
2023-09-02
TreeMap踩坑
不降志,不屈身,不追赶时髦,也不回避危险。──胡适 今天使用TreeMap踩坑了 代码如下: 12345678 @Testvoid test() { Map<Integer, Object> map = new TreeMap<>(Comparator.comparing(i -> i % 2 == 0)); map.put(2, 0); map.put(1, 0); map.put(3, 0); System.out.println(map);} 输出结果却是 1{1=0, 2=0} 这是因为Comparator里计算结果重复导致的,即便我们的key并不相同,也会被覆盖。。。 于是我们可以指定计算结果相同时策略: 123456789@Testvoid test() { Map<Integer, Object> map = new TreeMap<>(Comparator.<Integer, Boolean>comp...
2022-10-18
获取包装异常中真实异常
没有弄清对方的底细,绝不能掏出你的心来——巴尔扎克 重复调用getCause即可 12345678910111213141516171819202122232425262728package io.github.vampireachao.stream.core.lambda;/** * LambdaInvokeException * * @author VampireAchao ZVerify * @since 2022/9/4 */public class LambdaInvokeException extends RuntimeException { /** * <p>Constructor for LambdaInvokeException.</p> * * @param cause a {@link java.lang.Throwable} object */ public LambdaInvokeException(Throwable cause) { ...
2021-07-09
手动回滚、提交事务
再小的个子,也能给沙漠留下长长的身影;再小的人物,也能让历史吐出重重的叹息。——余秋雨《文化苦旅》 我们可以手动管理事务 首先需要引用两个Bean 1234@Resourceprivate TransactionDefinition transactionDefinition;@Resourceprivate IArticleEnclosureService articleEnclosureService; 然后是使用 1234567891011 PlatformTransactionManager transactionManager = Objects.requireNonNull(transactionTemplate.getTransactionManager()); TransactionStatus transactionStatus = transactionManager.getTransaction(transactionDefinition);if (逻辑执行正确) { //提交事务 transactionManager.c...
2020-08-15
springboot实现Validator校验
一个优秀的后端,是不会相信任何传入的参数的 要做到这一点,以前我们是写大量的判断代码来验证数据的格式 在开发中,我们实际不这么干,我们使用Hibernate Validator来进行参数校验 它实现了JSR 303规范,使我们的代码的健壮性大大提高 先列出一些常用注解 约束注解 详细信息 @Null 被注释的元素必须为 null @NotNull 被注释的元素必须不为 null @AssertTrue 被注释的元素必须为 true @AssertFalse 被注释的元素必须为 false @Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值 @Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值 @DecimalMin(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值 @DecimalMax(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值 @Size(max, min) 被注释的元素的大小必须在指定的范围内 @Digits (in...

阿超
我的名字叫阿超 年龄25岁 家在北京市 职业是软件开发 每天最晚也会在八点前回家 不抽烟 酒浅尝辄止 晚上十二点上床 保证睡足八个小时 睡前写一篇博客 再做二十分钟俯卧撑暖身 然后再睡觉 基本能熟睡到天亮 像婴儿一样不留下任何疲劳和压力 就这样迎来第二天的早晨 健康检查结果也显示我很正常 我想说明我是一个不论何时都追求内心平稳的人 不拘泥于胜负 不纠结于烦恼 不树立使我夜不能寐的敌人 这就是我在这社会的生活态度
Follow Me公告
This is my Blog