1.@AllArgsConstructor @RequiredArgsConstructor @NoArgsConstructor
@AllArgsConstructor 生成一个全参构造器
@RequiredArgsConstructor 生成一个必要参数构造器
@NoArgsConstructor 无参构造器
使用方式:
//可以通过final 替换@Autowire 简化代码的排列
@RequiredArgsConstructor(onConstructor =@_(@Autowired))
@Api
public class CampController {
// @Autowired
final ICampService iCampService;
也可以用在实体需要参数上加上@NonNull那个注解
2.@Builder
简化实体set方式,.builder().参数(值).build()
Student.builder().name( "zz" ).build();
3.@Builder.ObtainVia
import lombok.Builder;
@Builder(toBuilder = true)
public class 段奥娟 {
private String name;
@Builder.ObtainVia(method = "init") // 必传值调用init
// @Builder.ObtainVia(field = "name") // 此时 identity 为 name 变量值
private String identity;
private String init() {
if (identity.equals("AKB48")) {
return "段奥娟";
}
return "吴宣仪";
}
public static void main(String[] args) {
段奥娟 daj = 段奥娟.builder().name("段奥娟").identity("AKB48").build();
daj = daj.toBuilder().build();
System.out.println("============="+ daj.name +","+daj.identity);
}
}
4.@PosrConstruct 执行一次
执行顺序:构造器-〉 @Autoword -〉@PosrConstruct -〉@init
5 @SneakyThrows
@SneakyThrows 替换try-catch 将异常向上抛出
try{
}catch(Exception e){
throw new RuntimeException(e);
}
@SneakyThrows(UnsupportedEncodingException.class)
public String str(byte[] bytes) {
return new String(bytes, "UTF-8");
}