文香P
码龄9年
关注
提问 私信
  • 博客:96,102
    社区:2,123
    98,225
    总访问量
  • 42
    原创
  • 1,361,862
    排名
  • 19
    粉丝
  • 0
    铁粉

个人简介:我到底在做些什么啊

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:江苏省
  • 加入CSDN时间: 2015-11-13
博客简介:

sinat_32787481的博客

查看详细资料
个人成就
  • 获得29次点赞
  • 内容获得1次评论
  • 获得98次收藏
  • 代码片获得251次分享
创作历程
  • 17篇
    2020年
  • 22篇
    2018年
  • 3篇
    2017年
成就勋章
TA的专栏
  • mapstruct
    13篇
  • 初级总结
    7篇
  • html前端
    1篇
  • 服务器
    1篇
  • java
    26篇
  • 日常小结
    22篇
  • 设计模式
    22篇
创作活动更多

超级创作者激励计划

万元现金补贴,高额收益分成,专属VIP内容创作者流量扶持,等你加入!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Mybatis-Plus使用小记

使用mybatsi-plus增强在使用mybatis时的效率。mybatsi-plus更多的功能请参考mybatis-plus,这里主要介绍一下:代码生成器、CURD接口。引入jar包<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.2<
原创
发布博客 2020.12.26 ·
941 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

javax validation

使用protobuf时,对参数的校验很不方便,多是要手动编写一堆if-else的判断条件。介绍下使用javax validation来做参数校验,减少代码量、提供开发效率、定制统一的错误返回结果。原生的校验注解有:注解作用@Size判断集合或字符的大小@NotEmpty判断集合或字符不能为空@Pattern判断正则表达式是否满足@PastOrPresent判断日期类型是否小于等于某时@Past判断日期类型是否小于某时@FutureOrPrese
原创
发布博客 2020.12.26 ·
836 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

JavaBeans映射工具比较

JavaBeans映射工具比较BeanUtilsBeanCopierOrika多对一List映射MapStructOrika、MapStruct耗时比较定义一些基础对象// 定义转换的实体public class OrikaDTO { private Integer id; private String name; private Date createTime; private Timestamp lastUpdateTime; priva
原创
发布博客 2020.12.26 ·
867 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

使用JsonFormat映射protobuf和javabean

使用JsonFormat映射protobuf和javabeanprotobuf2protobuf3总结JsonFomat是谷歌官方推出的protobuf映射工具,可以将protobuf对象转换成JSON,所以我们可以使用JsonFomat转换成的json在javabean和protobuf对象间转换。JsonFormat有两个版本:com.googlecode.protobuf.format.JsonFormat(以下简称为F.JsonFormat)和com.google.protobuf.util.J
原创
发布博客 2020.12.26 ·
4552 阅读 ·
0 点赞 ·
0 评论 ·
6 收藏

MapStruct文档(十三)——问题分析

12.1、AbstractProcessorAbstractProcessor可以在编译时获取注解,生成代码。主要的方法有:init:做一些初始化操作。process:核心处理。返回是boolean类型,false表示继续由其他处理器处理该“元素(包、类、方法、变量等)”上的注解类型(当前要处理的注解集合)。getSupportedAnnotationTypes:获取可以处理的注解。可以在AbstractProcessor的实现类上使用@SupportedAnnotationTyp...
原创
发布博客 2020.12.10 ·
3311 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

MapStruct文档(十二)——protobuf映射

目录11.1、protobuf211.2、protobuf311.1、protobuf2定义一些基础类enum DownloadResourceTypeEnum{ download_resource_type_enum_audio = 0; //音频 download_resource_type_enum_vedio = 1; //视频 download_resource_type_enum_picture = 2; //图片 download_resource..
原创
发布博客 2020.12.10 ·
3404 阅读 ·
0 点赞 ·
0 评论 ·
5 收藏

MapStruct文档(十一)——SPI

mapstruct提供了一些列SPI,供我们自定义实现一些功能:AccessorNamingStrategy(实现自定义的get/set,获取字段名)、DefaultProvider(实现自定义的建造者)、MappingExclusionProvider(实现自定义的排除,也就是不自动映射字段)、EnumMappingStrategy(实现自定义的枚举命名)、EnumTransformationStrategy(实现自定义的枚举转换)。要实现自定义功能要先建一个项目,可以打包成jar包,自定义的实现以上
原创
发布博客 2020.12.10 ·
1434 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏

MapStruct文档(十)——映射扩展

目录9.1、*装饰器映射9.2、映射前置/后置方法9.3、循环嵌套对象调用前后置方法9.1、*装饰器映射在进行映射时可以通过装饰器模式,为目标对象设置一些,不能由源对象直接生成或者源对象没有的属性。spring注入策略的装饰器映射使用@DecoratedWith注解制定装饰器。装饰器中使用@Qualifier("delegate")指定注入的bean。@Mapper@DecoratedWith(TestDecotator.class)public interface
原创
发布博客 2020.12.09 ·
4709 阅读 ·
0 点赞 ·
0 评论 ·
7 收藏

MapStruct文档(九)——高级映射选项

目录8.1、映射配置继承8.2、逆映射8.3、共享配置8.3.1、MappingInheritanceStrategy.EXPLICIT8.3.2、MappingInheritanceStrategy.AUTO_INHERIT_FROM_CONFIG8.3.3、MappingInheritanceStrategy.AUTO_INHERIT_REVERSE_FROM_CONFIG8.3.4、MappingInheritanceStrategy.AUTO_INHERIT_ALL_FR
原创
发布博客 2020.12.09 ·
11130 阅读 ·
5 点赞 ·
0 评论 ·
17 收藏

MapStruct文档(八)——高级映射选项

目录7.1、默认值7.2、表达式7.2、确定映射结果的具体类型7.4、NULL映射控制7.4.1、源对象NULL映射7.4.3、在更新时源对象属性NULL映射7.4.3、何时NULL检查7.1、默认值可以给@Mapping的属性defaultValue设置一个值,若果源字段为空,那么目标字段就为此默认值。@Mapper(uses = BaseMapper.class)public interface TestMapper { @Mapping(targ
原创
发布博客 2020.12.09 ·
9675 阅读 ·
5 点赞 ·
0 评论 ·
7 收藏

MapStruct文档(七)——对象工厂

目录6、对象工厂6.1、映射工厂6.2、更新工厂6、对象工厂6.1、映射工厂在映射成目标对象时,创建目标对象实例,可以使用@ObjectFactory注解的方法取代调用默认的构造方法创建目标对象,工厂方法可以是无参返回类型是目标类型的方法,无参的工厂方法可以不设置@ObjectFactory注解;或有参返回类型是目标类型的方法,参数可以用@TargetType或@Context注解。@Datapublic class TestFivePO { private Te
原创
发布博客 2020.12.09 ·
1136 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

MapStruct文档(六)——枚举映射

目录5.1、枚举和枚举映射5.2、枚举和String映射5.2.1、enum to String5.2.2、String to enum5.3、自定义名称转换5.1、枚举和枚举映射枚举通常是直接映射到同名的枚举对象中,不同名需@ValueMapping指定,并且源和目标上可以设置MappingConstants.ANY_REMAINING:只能用在source上,标识source中除了同名自动映射和指定映射外,其余所有对象都映射到target对象上。MappingC.
原创
发布博客 2020.12.09 ·
10547 阅读 ·
2 点赞 ·
0 评论 ·
5 收藏

MapStruct文档(五)——集合映射

目录4.1、List4.2、Map4.3、更新集合4.4、集合策略4.5、*集合属性映射4.5.1、手动创建add方法4.5.2、getter和adder类型不同4.5.3、多个相同参数列表的add方法4.1、List迭代的每一项遵循以上规则。@Mapperpublic interface TestMapper { TestBO testToBO(TestPO testPO); List<TestBO> testToBOS(L
原创
发布博客 2020.12.09 ·
5110 阅读 ·
1 点赞 ·
0 评论 ·
5 收藏

MapStruct文档(四)——转换

目录3.1、隐式转换3.1.1、枚举、BigDecimal、Date、Timestamp3.1.2、LocalDateTime3.1.3、Boolean3.2、*对象属性转换3.3、将映射目标类型传递给自定义映射器3.4、将上下文或状态对象传递给自定义方法3.5、区别相同参数类型和返回类型的映射方法3.1、隐式转换enum和String BigDecimal(等)、基本数据类(包括包装类)和String java.time.LocalDateTime(等)和.
原创
发布博客 2020.12.09 ·
8214 阅读 ·
3 点赞 ·
0 评论 ·
10 收藏

MapStruct文档(三)——Spring注入

通常我们的项目都是基于spring的,对象的注入就必不可少。在pom文件的bulid->plugins->plugin(maven-compiler-plugin)->configuration下添加相应配置。mapstruct配置...<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin<
原创
发布博客 2020.12.09 ·
5940 阅读 ·
4 点赞 ·
0 评论 ·
7 收藏

MapStruct文档(二)——映射

1、映射1.1、自定义方法若mapstruct满足不了我们的需求,也可以自己写转换方法。1.1.1、抽象类@Mapperpublic abstract class TestMapper { public TestBO testToBO(TestPO testPO) { TestBO testBO = new TestBO(); testBO.setName(testPO.getName() + "BO"); return ...
原创
发布博客 2020.12.09 ·
3690 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

MapStruct文档(一)——简介

mapstruct是一个java的bena对象转换映射工具。只需定义mapper接口,会在编译时动态生成set/get的class实现类文件,在运行时直接调用。速度快,其他性能指标也很好。需要配置的mavne设置...<dependencies> <dependency> <groupId>org.mapstruct</groupId> <artifactId>mapstruct</a.
原创
发布博客 2020.12.09 ·
2703 阅读 ·
0 点赞 ·
0 评论 ·
10 收藏

解释器模式

定义一个语言的文法,并且建立一个解释器来解释该语言中的句子,“语言”是指使用规定格式和语法的代码。其中,Context类用于存储解释器之外的一些全局信息;NumberNode类称作终结符表达式;SymbolNode类称作非终结符表达式;非终结符表达式中包含其他非终结符表达式或终结符表达式,非终结符表达式中的interpret方法通常以递归方式执行。public interface N...
原创
发布博客 2018.10.27 ·
363 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

中介者模式

中介者模式通过提供了一个中介类,处理不同类之间复杂的引用关系;将一个网状的系统结构变成一个以中介者对象为中心的星形结构。public interface Mediator { void broadcast(ChatUser chatUser, String message);}public class ChatMediator implements Mediator {...
原创
发布博客 2018.10.25 ·
162 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

访问者模式

表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。对象结构中对象对应的类很少改变,但经常需要在此对象结构上定义新的操作。需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而需要避免让这些操作"污染"这些对象的类,也不希望在增加新操作时修改这些类。Element抽象元素一般是抽象类或者接口,它定义一个accept()方法,该方法通常以...
原创
发布博客 2018.10.24 ·
224 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多