① 为什么使用
还在编写无聊枯燥又难以维护的 POJO 吗?洁癖者的春天在哪里?请看 Lombok!在过往的 Java 项目中,充斥着太多不友好的代码:POJO 的 getter/setter/toString;异常处理;I/O 流的关闭操作等等,这些样板代码既没有技术含量,又影响着代码的美观,Lombok 应运而生。首先说明一下:任何技术的出现都是为了解决某一类问题的,如果在此基础上再建立奇技淫巧,不如回归 Java 本身。应该保持合理使用而不滥用。
② 如何安装
当前你使用的 ide 未安装 lombok. lombok 能够达到的效果就是在源码中不需要写一些通用的方法,但是在编译生成的字节码文件中会帮我们生成这些方法,减少代码冗余。
③ 常用且特殊注解
@AllArgsConstructor
@AllArgsConstructor 替代@Autowired 构造注入 ,多个 bean 注入时更加清晰
@ Slf4j
@ Configuration
@ AllArgsConstructor
public class RouterFunctionConfiguration {
private final HystrixFallbackHandler hystrixFallbackHandler ;
private final ImageCodeHandler imageCodeHandler ;
}
// 替代如下代码
@ Slf4j
@ Configuration
public class RouterFunctionConfiguration {
@ Autowired
private HystrixFallbackHandler hystrixFallbackHandler ;
@ Autowired
private ImageCodeHandler imageCodeHandler ;
}
@RequiredArgsConstructor
@RequiredArgsConstructor 只会构造注入 final 注释的属性 ,推荐使用
@ RestController
@ RequiredArgsConstructor
@ RequestMapping ( "/user" )
@ Api ( value = "user" , tags = "用户管理模块" )
public class SysUserController {
private final SysUserService userService ;
}
@SneakyThrows
@ SneakyThrows
private void checkCode ( ServerHttpRequest request) {
String code = request . getQueryParams (). getFirst ( "code" );
if ( StrUtil . isBlank (code)) {
throw new ValidateCodeException ( "验证码不能为空" );
}
redisTemplate . delete (key);
}
// 不使用就要加这个抛出
private void checkCode ( ServerHttpRequest request) throws ValidateCodeException {
String code = request . getQueryParams (). getFirst ( "code" );
if ( StrUtil . isBlank (code)) {
throw new ValidateCodeException ( "验证码不能为空" );
}
}
@UtilityClass
@UtilityClass 工具类再也不用定义 static 的方法了,直接就可以 Class.Method 使用
@ UtilityClass
public class Utility {
public String getName () {
return "name" ;
}
}
public static void main ( String [] args) {
System . out . println ( Utility . getName ());
}
@Cleanup
@CleanUp: 清理流对象,不用手动去关闭流,多么优雅
@ Cleanup
OutputStream outStream = new FileOutputStream ( new File ( "text.txt" ));
@ Cleanup
InputStream inStream = new FileInputStream ( new File ( "text2.txt" ));
byte [] b = new byte [ 65536 ];
while ( true ) {
int r = inStream . read (b);
if (r == - 1 ) break ;
outStream . write (b, 0 , r);
}
Lombok 常用的注解就那么几个,@Data、@Getter/Setter,Pig 使用例子中的几个可以让代码的更加优雅,建议在你的工程中使用
♥️ 获取支持
遇到问题? 如果您在使用过程中遇到任何问题、有功能建议或需求,请点击此卡片前往 Gitee 仓库提交 Issue。