Lombok

Deserialise XML response with attributes and not wrapped collections

◇◆丶佛笑我妖孽 提交于 2020-08-10 05:40:42
问题 I'm trying to deserialise an XML response from my RestTemplate and the response contains attributes that I need to set in my mapped object. The response is similar to: <schoolResponse> <class id="1" num_of_students="22" name="Ms Barry" > <student key="202" value="Jim" /> <student key="203" value="Tom" /> <student key="204" value="Dave" /> <schoolYear>1980</schoolYear> </class> <class id="2" num_of_students="20" name="Mr Smith"> <student key="302" value="Jim" /> <student key="303" value="Tom"

Deserialise XML response with attributes and not wrapped collections

坚强是说给别人听的谎言 提交于 2020-08-10 05:40:05
问题 I'm trying to deserialise an XML response from my RestTemplate and the response contains attributes that I need to set in my mapped object. The response is similar to: <schoolResponse> <class id="1" num_of_students="22" name="Ms Barry" > <student key="202" value="Jim" /> <student key="203" value="Tom" /> <student key="204" value="Dave" /> <schoolYear>1980</schoolYear> </class> <class id="2" num_of_students="20" name="Mr Smith"> <student key="302" value="Jim" /> <student key="303" value="Tom"

超简洁!利用easyExcel导出,读入Excel

狂风中的少年 提交于 2020-08-10 02:00:06
x 深夜,在东莞,7天酒店,打开电脑,访问国内最大的同性交友网站。 日常开发中,导出导入场景非常多,尤其是对于后台管理更是一个列表一个导出,如果从导出的业务中抽离出复用代码,专注于逻辑开发,对于开发者而言非常重要。前有使用POI,但作者还是更喜EasyExcel的简洁高效不拖沓,所以特意写篇文章记录下。 准备工作 准备工作是看文档了解EasyExcel吗?不,我们直接上手吧!我发现最近的业务里面,最简单的例子已经应付下来了!所以准备工作自然只需导入EasyExcel的jar包,这里我们由于是springboot项目,所以直接使用maven。直接上最新的版本了!pom.xml给它加上: xxxxxxxxxx < dependency > < groupId > com . alibaba </ groupId > < artifactId > easyexcel </ artifactId > < version > 2.2 . 5 </ version > </ dependency > 导出 准备工作已经完成,导出开始,首先需要一个Bean类,导出的字段和Excel文件的字段一样即可。@Data是用了lombok,@ExcelProperty则包含了Excel首行的名称和字段所在位置,从0开始,不能重复。 ​ x @Data public class ExportVo {

Jeecg-Boot初始化项目

回眸只為那壹抹淺笑 提交于 2020-08-10 01:58:02
Jeecg-Boot初始化项目 一、软件版本 二、具体记录 1.重命名 2.请求链接 3.子模块 4.自定义业务包 5.LomBok插件 三、其它 1.前端修改的文件 Jeecg-Boot初始化项目 一、软件版本 jeecg-boot版本:2.1.1 官方论坛: http://www.jeecg.org/ 二、具体记录 1.重命名 1)修改项目的文件夹名称,例如: jeecg-boot 改为 example-boot ant-design-vue-jeecg 改为 ant-design-vue-example 2) IntelliJ IDEA 导入后端项目 修改 .idea 包中的 .name 文件,将 jeecg-boot-parent 改为 example-boot 父 pom.xml 的 <artifactId>jeecg-boot-parent</artifactId> 改为 <artifactId>example-boot</artifactId> 两个子模块 pom.xml 中,parent 节点,将 <artifactId>jeecg-boot-parent</artifactId> 改为 <artifactId>example-boot</artifactId> 修改项目根目录的 jeecg-boot-parent.iml 的文件名为 example-boot

@Builder和@Accessors那个更香

江枫思渺然 提交于 2020-08-09 22:27:06
一、对象的创建方法 new Object() 工厂模式 建造者模式 二、优劣性 2.1 直接创建对象 构造方法多个参数时无法明确含义,比如 Object(String name, String phone) 和 Object(String name, String addr) 当参数大于4个时,需要组合所有参数的构造方法,造成代码太大 2.2 使用工厂模式 可以通过定义方法 newInstance 和 getInstance 来确定单例还是多例,再则可以通过方法名来区别方法参数 2.3 建造者模式 支持链式表达式 当多线程环境对共享变量进行初始化操作时,可能将未完全初始化的对象暴露出去造成安全问题,这是可以使用建造者模式来保证对象赋值时一定是初始化完成后。 三、Lombok的@Builder和@Accessors区别 3.1@Builder @Builder就是基于建造者模式支持链式操作,但很多时候都是构造失血模式的 Bean 或者没有共享变量,这时候为了链式操作就新建一个 builder 是不是有点大材小用 3.2@Accessors @Accessors 就可以解决上述的问题,支持链式操作,同时减少多余对象的创建, builder类元信息 又可以减少 四、坑 有的开源反射工具包对对象进行浅拷贝时,获取 set 方法元信息时会判断方法返回值是否是 void ,这时候

听说用 Lombok 可以早点下班?

无人久伴 提交于 2020-08-09 21:42:30
听说隔壁用 Lombok 的六点就下班了,我也想六点下班! 好的,那么这篇文章就介绍下 什么是 Lombok , Lombok 做了什么 以及 Lombok 是怎么做的 ? 在介绍之前,先通过是否使用 Lombok 的效果来看下对比,首先来看下没有 Lombok 之前,我们的一个简单的 Java 对象(POJO)是长什么样子的: 哦,我的天啊,居然 60 行,好长啊!那我们接下来使用的 Lombok 来试下: 什么,只使用了 @Data 注解就可以实现之前 60 行的相同功能,代码长度整整缩小了 3 倍,这么神奇的嘛?那么让我们走进 Lombok 吧! 什么是 Lombok? 下面是 Lombok 官网的简介: 简而言之就是 Lombok 是一个很方便的插件,本质是个 Java 库,使用它通过相关注解就可以不用再编写冗长的 getter 或者 equals 等方法了。 接下来讲下 Lombok 实现的原理,这样就知道为什么要这样使用 Lombok 的注解了。 Lombok 实现原理 要讲 Lombok 的实现原理,在此之前就需要来说下注解的两种解析方式: 运行时注解 和 编译时注解 。 首先来看下 运行时解析 ,比如 Spring 配置的 AOP 切面这些注解都是在程序运行的时候通过反射来获取的注解值,但是只有在程序运行时才能获取到这些注解值,导致运行时代码效率很低

springboot application.yml配置学习

一曲冷凌霜 提交于 2020-08-09 17:28:44
一、背景 为了更好的使用springboot,所以看一下application.yml配置这块。主要是看数据绑定这块。 主要参考:https://www.hangge.com/blog/cache/detail_2459.html 二、项目主要内容 1、controller package com.shuimutong.learn.springboot.yml.controller; import com.alibaba.fastjson.JSON; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; @RestController public class HelloController { @GetMapping( "/hello2" ) public String hello2() { return "Hello, Jack!" ; } } 2、启动类 package com.shuimutong

不再使用lombok的@Slf4j

旧街凉风 提交于 2020-08-09 13:04:27
@Slf4j 真的是很方便的注解,我很是喜欢,只是Lombok毕竟有一定的侵入性,需要IDE进行支持,有时IDE和其插件还会因为升级问题而不匹配。只能忍痛不在工作场合中使用了。   没了这么好用的注解,我们怎么快速敲出这一行内容呢?其实不难,我们可以使用IDEA的 live template 。 1.首先,打开设置界面。   按下 Ctrl+Alt+S 唤醒界面,搜索 live templates ,相信有不少同志已经很熟悉这个界面了,如果没有Java分组,请先创建Java分组。 2.新建一个 live template   我们选择新建一个 live template ,缩略语输入 log ,当然您也可以输入其它,比如 slog ,这样可以减少冲突,下面的生成的代码为: private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger($CurrentClass$.class);   其中, $CurrentClass$ 需要编辑设置一下: 后记   大道至简,有时候,代码少一些工巧,返璞归真,反而更好,共勉。 来源: oschina 链接: https://my.oschina.net/hengbao666/blog/4341862

idea开发工具SpringBoot+Mybaits Plus+Lombok+Shiro集成(一)

寵の児 提交于 2020-08-09 05:25:58
一、创建第一个SpringBoot项目 1、双击IDEA图标,进入到如下界面,在该页面中,点击箭头所示的“Create New Project”选项; 2、idea开发工具为SpringBoot提供专门创建的方法,选中Spring Initializr然后点击【Next】 3、写maven的坐标,“groupId”,“artifactId”,“Type”,以及“version”,其中groupId是公司域名的反写,而artifactId是项目名或模块名,Type为maven项目,version就是该项目或模块所对应的版本号,填写完之后,点击【Next】 4、左侧是SpringBoot提供的一些插件,本次只是创建web项目所有勾选Spring Web就可以,可以选择对应的SpringBoot版本,然后点击【Next】 5、接着【Next】 6、到此springboot项目创建完成,下面是目录结构 7、新建一个名为HelloController的class,编写第一个请求hello,调整启动方法SpringbootApplication到根目录下,点击SpringbootApplication类的Run方法启动项目进行访问。 package com.shaoqunchao.controller; import org.springframework.boot.autoconfigure

程序员使用IDEA这些插件后,办公效率提升100%(持续更新中)

自闭症网瘾萝莉.ら 提交于 2020-08-09 02:42:39
IDEA一些不错的插件分享 目录 IDEA一些不错的插件分享 插件集合 CamelCase Translation LiveEdit MarkDown Navigator Jrebel CheckStyle-IDEA Alibaba Java Coding Guidelines Ideavim Maven Helper FindBugs-IDEA GsonFormat Key promoter X .ignore JVM Debuger Memory View CMD Support Batch Scripts Support BashSupport Docker integration JMH plugin ANSI Highlighter Ideolog RestfulToolkit CodeGlance Lombok plugin activate-power-mode Background Image Plus Iedis Mongo Plugin VisualVM Launcher GenerateAllSetter MyBatisCodeHelperPro Easy Code IDEA Mind Map SequenceDiagram Material Theme UI String Manipulation JUnit Generator V2.0 设置方法 插件集合