Lombok

2020最新IDEA插件大集合,一款能帮助你写代码的工具是多么重要

廉价感情. 提交于 2020-08-12 08:30:29
摘要 12款为用户精心打造的Idea插件,含盖前后端,另把使用小技巧分享给大家,提高大家的码率,希望对你们有帮助! Lombok Lombok为Java项目提供了非常有趣的附加功能,使用它的注解可以有效的地解决那些繁琐又重复的代码,例如 Setter、Getter、toString、equals、hashCode 以及非空判断等。 举个例子,我们给一个类添加@Getter和@Setter注解: /** * 修改订单费用信息参数 * Created by macro on 2018/10/29. */ @Getter @Setter public class OmsMoneyInfoParam { private Long orderId; private BigDecimal freightAmount; private BigDecimal discountAmount; private Integer status; } Lombok就会为我们自动生成所有属性的Getter和Setter方法。 Free MyBatis Plugin MyBatis扩展插件,可以在Mapper接口的方法和xml实现之间自由跳转,也可以用来一键生成某些xml实现。 我们可以通过Mapper接口中方法左侧的箭头直接跳转到对应的xml实现中去;

SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 后端篇(四): 整合阿里云 短信服务、整合 JWT 单点登录

北战南征 提交于 2020-08-12 05:08:30
(1) 相关博文地址: SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 前端篇(一):搭建基本环境:https: // www.cnblogs.com/l-y-h/p/12930895.html SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 前端篇(二):引入 element-ui 定义基本页面显示:https: // www.cnblogs.com/l-y-h/p/12935300.html SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 前端篇(三):引入 js-cookie、axios、mock 封装请求处理以及返回结果:https: // www.cnblogs.com/l-y-h/p/12955001.html SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 前端篇(四):引入 vuex 进行状态管理、引入 vue-i18n 进行国际化管理:https: // www.cnblogs.com/l-y-h/p/12963576.html SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 前端篇(五):引入 vue-router 进行路由管理、模块化封装 axios 请求、使用

CTO:不要在 Java 代码中写 set/get 方法了,逮一次罚款

我是研究僧i 提交于 2020-08-11 21:48:58
前言 what?你的 Java 代码中还充斥着大量的 set/get 方法? 我们在刚开始学习 Java 语言的时候讲过,面向对象的三大特征就是封装,继承,和多态。在 Java 中,要保证封装性,需要将成员变量私有化,对外提供 set/get 方法来访问,虽然现在的 IDE,像 eclipse,IDEA都提供了快捷键,来生成 set/get 方法,但是在做项目的时候,一个 JavaBean 往往会有很多的成员变量,一个变量对应两个方法,如果有10几个成员变量,那么会对应20多个方法,也许还要去写构造器、equals 等方法,而且需要维护。这样一来,会使代码变得非常冗余,这些显得很冗长也没有太多技术含量,一旦修改属性,就容易出现忘记修改对应方法的失误。 我在看大佬的项目的源码的时候,看到他们的代码中都没有 set/get 方法,取而代之的是在 JavaBean 上标注的注解,我感到非常的好奇,原来他们是用了一种叫做 Lombok 的插件,便去详细了解了这个插件。 Lombok背景介绍 官方介绍如下: Project Lombok makes java a spicier language by adding 'handlers' that know how to build and compile simple, boilerplate-free, not-quite-java

Map 集合怎么也有这么多坑?一不小心又踩了好几个!

僤鯓⒐⒋嵵緔 提交于 2020-08-11 08:28:33
上一篇 List 踩坑文章 中,我们提到几个比较容易踩坑的点。作为 List 集合好兄弟 Map,我们也是天天都在使用,一不小心也会踩坑。 今天我就来总结这些常见的坑,再捞自己一手,防止后续同学再继续踩坑。 本文设计知识点如下: 不是所有的 Map 都能包含 null 这个踩坑经历还是发生在实习的时候,那时候有这样一段业务代码,功能很简单,从 XML 中读取相关配置,存入 Map 中。 代码示例如下: 那时候正好有个小需求,需要改动一下这段业务代码。改动的过程中,突然想到 HashMap 并发过程可能导致死锁的问题。 于是改动了一下这段代码,将 HashMap 修改成了 ConcurrentHashMap 。 美滋滋提交了代码,然后当天上线的时候,就发现炸了。。。 应用启动过程发生 NPE 问题,导致应用启动失败。 根据异常日志,很快就定位到了问题原因。由于 XML 某一项配置问题,导致读取元素为 null,然后元素置入到 ConcurrentHashMap 中,抛出了空指针异常。 这不科学啊!之前 HashMap 都没问题,都可以存在 null ,为什么它老弟 ConcurrentHashMap 就不可以? 翻阅了一下 ConcurrentHashMap#put 方法的源码,开头就看到了对 KV 的判空校验。 看到这里,不知道你有没有疑惑,为什么

SpringBoot + Shiro + JWT 实现认证和授权

亡梦爱人 提交于 2020-08-11 07:04:34
1、JWT JWT是JSON WEB TOKEN的缩写,它是基于 RFC 7519标准定义的一种可以安全传输的的JSON对象,由于使用了数字签名,所以是可信任和安全的。 1.JWT的组成 JWT token的格式:header.payload.signature header中用于存放签名的生成算法 {"alg": "HS512"} payload中用于存放用户名、token的生成时间和过期时间 {"sub":"admin","created":1489079981393,"exp":1489684781} signature为以header和payload生成的签名,一旦header和payload被篡改,验证将失败 //secret为加密算法的密钥 String signature = HMACSHA512(base64UrlEncode(header) + "." +base64UrlEncode(payload),secret) 2.JWT实现认证和授权的原理 用户调用登录接口,登录成功后获取到JWT的token; 之后用户每次调用接口都在http的header中添加一个叫Authorization的头,值为JWT的token; 后台程序通过对Authorization头中信息的解码及数字签名校验来获取其中的用户信息,从而实现认证和授权。 2、SpringBoot +

netty实战之微信登录群聊8-群的加入,退出,群成员列表

拥有回忆 提交于 2020-08-11 00:47:07
package com.juejing.im.attribute; import com.juejing.im.Session.Session; import io.netty.util.AttributeKey; public interface Attributes { AttributeKey<Boolean> LOGIN = AttributeKey.newInstance("login"); AttributeKey<Session> SESSION = AttributeKey.newInstance("session"); } package com.juejing.im.client.console; import io.netty.channel.Channel; import java.util.Scanner; public interface ConsoleCommand { void exec(Scanner scanner, Channel channel); } package com.juejing.im.client.console; import io.netty.channel.Channel; import java.util.HashMap; import java.util.Map; import java.util.Scanner;

从零搭建Spring Boot脚手架(2):增加通用的功能

狂风中的少年 提交于 2020-08-11 00:41:19
1. 前言 今天开始搭建我们的 kono Spring Boot 脚手架,首先会集成 Spring MVC 并进行定制化以满足日常开发的需要,我们先做一些刚性的需求定制,后续再补充细节。如果你看了本文有什么问题可以留言讨论。多多持续关注,共同学习,共同进步。 Gitee: https://gitee.com/felord/kono GitHub: https://github.com/NotFound403/kono 2. 统一返回体 在开发中统一返回数据非常重要。方便前端统一处理。通常设计为以下结构: { "code": 200, "data": { "name": "felord.cn", "age": 18 }, "msg": "", "identifier": "" } code 业务状态码,设计时应该区别于http状态码。 data 数据载体,用以装载返回给前端展现的数据。 msg 提示信息,用于前端调用后返回的提示信息,例如 “新增成功”、“删除失败”。 identifier 预留的标识位,作为一些业务的处理标识。 根据上面的一些定义,声明了一个统一返回体对象 RestBody<T> 并声明了一些静态方法来方便定义。 package cn.felord.kono.advice; import lombok.Data; import java.io

gradle 使用 lombok

断了今生、忘了曾经 提交于 2020-08-10 19:57:18
https://projectlombok.org/setup/gradle repositories { mavenCentral() } dependencies { compileOnly 'org.projectlombok:lombok:1.18.12' annotationProcessor 'org.projectlombok:lombok:1.18.12' testCompileOnly 'org.projectlombok:lombok:1.18.12' testAnnotationProcessor 'org.projectlombok:lombok:1.18.12' } 来源: oschina 链接: https://my.oschina.net/canghaidekongjian/blog/4311051

springboot application.yml配置学习

≡放荡痞女 提交于 2020-08-10 17:01:58
一、背景 为了更好的使用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

Java程序员必备的11大Intellij插件

陌路散爱 提交于 2020-08-10 10:02:49
善用Intellij插件可大幅提升我们的效率 以下是我用过不错的Intellij插件 1. .ignore 地址: https://plugins.jetbrains.com/plugin/7495--ignore 生成各种ignore文件,一键创建git ignore文件的模板,免得自己去写 截图: 2. lombok 地址: https://plugins.jetbrains.com/plugin/6317-lombok-plugin 支持lombok的各种注解,从此不用写getter setter这些 可以把注解还原为原本的java代码 非常方便 截图: 3. p3c 地址: https://plugins.jetbrains.com/plugin/10046-alibaba-java-coding-guidelines 阿里巴巴出品的java代码规范插件 可以扫描整个项目 找到不规范的地方 并且大部分可以自动修复 更多可看: https://github.com/alibaba/p3c/tree/master/idea-plugin 4. FindBugs-IDEA 地址: https://plugins.jetbrains.com/plugin/3847-findbugs-idea 检测代码中可能的bug及不规范的位置,检测的模式相比p3c更多, 写完代码后检测下