zxpnet网站 zxpnet网站
首页
前端
后端服务器
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

zxpnet

一个爱学习的java开发攻城狮
首页
前端
后端服务器
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 大后端课程视频归档
  • 南航面试题
  • 并发编程

  • 性能调优

  • java8语法

  • lombok

    • lombok的使用及技巧
    • 日志

    • 工具类

    • spring

    • mybatis

    • springboot

    • redis

    • zookeeper

    • springcloud

    • dubbo

    • netty

    • springsecurity

    • mq消息中间件

    • shiro

    • beetle

    • 模板引擎

    • jpa

    • 数据结构与算法

    • 数据库知识与设计

    • gradle

    • maven

    • bus

    • 定时任务

    • docker

    • centos

    • 加解密

    • biz业务

    • pigx项目

    • 开源项目

    • 品达通用权限项目-黑马

    • 货币交易项目coin-尚学堂

    • php

    • backend
    • lombok
    shollin
    2021-06-06
    目录

    lombok的使用及技巧

    • 为什么使用lombok
    • 如何安装
    • 项目中的使用例子,不讲常见的,只讲技巧性的
    • 总结

    # 为什么使用lombok

    任何技术的出现都是为了解决某一类问题的,如果在此基础上再建立奇技淫巧,不如回归Java本身。应该保持合理使用而不滥用。

    还在编写无聊枯燥又难以维护的POJO吗? 洁癖者的春天在哪里?请看Lombok!在过往的Java项目中,充斥着太多不友好的代码:POJO的getter/setter/toString;异常处理;I/O流的关闭操作等等,这些样板代码既没有技术含量,又影响着代码的美观,Lombok应运而生。

    # 如何安装

    当前你使用的ide未安装lombok. lombok能够达到的效果就是在源码中不需要写一些通用的方法,但是在编译生成的字节码文件中会帮我们生成这些方法,减少代码冗余.

    IDEA安装方法 (opens new window) |

    eclipse安装方法 (opens new window)

    # 项目中的使用例子,不讲常见的,只讲技巧性的

    • @AllArgsConstructor (opens new window) 替代@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;
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    • @RequiredArgsConstructor 相较于 @AllArgsConstructor (opens new window) 只会构造注入 final 注释的属性,推荐使用
    @RestController
    @RequiredArgsConstructor
    @RequestMapping("/user")
    @Api(value = "user", tags = "用户管理模块")
    public class SysUserController {
    
        private final SysUserService userService;
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    • @SneakyThrows (opens new window)
    @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("验证码不能为空");
       }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    • @UtilityClass (opens new window) 工具类再也不用定义static的方法了,直接就可以Class.Method 使用
    @UtilityClass
    public class Utility {
    
        public String getName() {
            return "name";
        }
    }
    
    public static void main(String[] args) {
        System.out.println(Utility.getName());
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    • @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); 
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    # 总结

    Lombok 常用的注解就那么几个,@Data 、@Getter/Setter ,项目中使用例子中的几个可以让代码的更加优雅,建议在你的工程中使用

    #lobmok
    CompletableFuture使用
    guava基础

    ← CompletableFuture使用 guava基础→

    最近更新
    01
    国际象棋
    09-15
    02
    成语
    09-15
    03
    自然拼读
    09-15
    更多文章>
    Theme by Vdoing | Copyright © 2019-2023 zxpnet | 粤ICP备14079330号-1
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式