Lombok插件的安装与使用

1)lombok介绍


lombok能够极大的简化消除我们写的代码,使用注解的方式省略get set toString….等方法,使得代码看起来更加的美观。lombok是在编译时候生成对应的方法的,所以在性能上面大家完全不用担心,是与我们写上get set方法是一样的。它自带了这些标签

lombok使用(常用的几个注释)

2)安装lombok插件


IDEA下 File—setting—plugin–搜索lombok–安装 重启便可以了

eclipse下,先下载lombok jar包。使用cmd命令java -jar 你的lombok jar路径,然后会弹出一个框 这里会自动搜索你的eclipse安装路径(如果搜索不到,自行选择),如下图 


安装完成后在你的eclipse安装路径下回有一个lombok.jar。同时你也可以看看ecliipse.ini里面是否多了个lombok

重启你的eclipse,这样那些报错说没有get set方法的类就好了

3)项目使用中引入

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.16.20</version>
    <scope>provided</scope>
</dependency>

4)常用注解

@Data:注解在类上,将类提供的所有属性都添加get、set方法,并添加、equals、canEquals、hashCode、toString方法

@Setter:注解在类上,为所有属性添加set方法、注解在属性上为该属性提供set方法

@Getter:注解在类上,为所有的属性添加get方法、注解在属性上为该属性提供get方法

@NotNull:在参数中使用时,如果调用时传了null值,就会抛出空指针异常

@Synchronized 用于方法,可以锁定指定的对象,如果不指定,则默认创建一个对象锁定

@Log作用于类,创建一个log属性

@Builder:使用builder模式创建对象

@NoArgsConstructor:创建一个无参构造函数

@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;
}


@ToString:创建一个toString方法

@Accessors(chain = true)使用链式设置属性,set方法返回的是this对象。

@RequiredArgsConstructor:创建对象, 例: 在class上添加@RequiredArgsConstructor(staticName = “of”)会创建生成一个静态方法

@UtilityClass:工具类再也不用定义static的方法了,直接就可以Class.Method 使用

@UtilityClass
public class Utility {

    public String getName() {
        return "name";
    }
}

public static void main(String[] args) {
    System.out.println(Utility.getName());
}


@ExtensionMethod:设置父类

@FieldDefaults:设置属性的使用范围,如private、public等,也可以设置属性是否被final修饰。

@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("验证码不能为空");
   }
}


@EqualsAndHashCode:重写equals和hashcode方法。

@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); 
}

参考文章:https://blog.csdn.net/qq_26118603/article/details/78944704 

参考文章:https://blog.csdn.net/hh1sdfsf56456/article/details/81331676

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章