springboot (14): Lombok 을 사용 하여 우아 한 인 코딩

5146 단어 springboot
https://www.cnblogs.com/qnight/p/8997493.html
머리말Lombok  일종  Java™  유 틸 리 티 도 구 는 개발 자 들 이 자바 의 지루 함 을 없 애 는 데 도움 을 줄 수 있 습 니 다. 특히 간단 한 자바 대상 (POJO) 에 대해 서 는.그것 은 주 해 를 통 해 이 목적 을 실현 한다.
본문
의존 도 를 높이다
pom. xml 파일 에 의존 도 를 추가 합 니 다:

1.16.20


        
            org.projectlombok
            lombok
            ${lombok.version}
            provided
        

 Lombok  취 하 는 주해 형식의 경우 컴 파일 후 자동 으로 해당 하 는 방법 을 생 성 합 니 다. ide 가 미 치지 않도록 플러그 인 을 다운로드 하여 지원 해 야 합 니 다.  아이디어 예: 플러그 인 찾기  lombok plugin  설치 하면 됩 니 다.
나의 User 실체 클래스 를 예 로 들 면 (set, get, toString 방법),


@Getter
@Setter
@ToString
public class SysUserEntity implements Serializable

 Ctrl + F12 set, get, toString 방법 을 찾 을 수 있 습 니 다.
주해
자주 사용 하 는 것 을 쓰 고 나머지 api 는 Jar 가방 을 열 면 한눈 에 알 수 있 습 니 다.
@Getter
@Setter
@ToString
@EqualsAndHashCode
구조 함수
@AllArgsConstructor
모든 변 수 를 포함 하 는 변 수 를 생 성 합 니 다. 또한 변수 가 NotNull annotation 을 사용 하면 비어 있 는 지 확인 합 니 다.  모든 매개 변수의 구조 함수 가 자동 으로 생 성 되 고 이 주해 의 역할 영역 도 실체 류 에서 만 매개 변수의 순서 와 속성 정의 순서 가 일치 합 니 다.
@NoArgsConstructor
무 참 구조 함수
@RequiredArgsConstructor
상수 (final) 와 @ NotNull 변 수 를 표시 하 는 구조 방법 을 생 성 합 니 다.
어떻게
그것들 은 모두 세 개의 매개 변 수 를 설정 할 수 있다.  1.  String staticName() default "";
이 를 설정 하면 원래 의 구조 적 접근 수식 자 를 개인 적 으로 정적 구조 방법 을 추가 합 니 다. 매개 변 수 는 같 습 니 다. 이름 은 설 정 된 문자열 의 이름 이 고 액세서리 에 접근 하 는 것 은 공유 입 니 다.

  • AnyAnnotation[] onConstructor() default {};   구조 방법 에 주 해 를 첨가 하 다.사용 방법 @RequiredArgsConstructor(onConstructor=@__({@AnnotationsGoHere}))} 예 를 들 어 우 리 는 Spring 프로젝트 에 여러 개의 값 을 주입 하고 여러 개 를 써 야 한다.  @Autowired  귀 찮 습 니 다. 이런 방식 을 사용 할 수 있 습 니 다.
    
    @Service
    @RequiredArgsConstructor(onConstructor = @__(@Autowired))
    public class UserServiceImpl implements IUserService {
       private final IUserRepository userRepository;
       private final IOrderRepository orderRepository;
       ………………
  • AccessLevel access() default lombok.AccessLevel.PUBLIC;  구조 함수 접근 수정자;

  • @NoArgsConstructor 무 삼 구조 함수 에 주해 가 있다.  boolean force() default false;   저자 If {@ code true}, initializes all final fields to 0 / null / false. 그렇지 않 으 면 compile time error occurs.  true  모든 인 자 를 기본 값 으로 초기 화 합 니 다. 그렇지 않 으 면 컴 파일 오류 가 발생 합 니 다.
  • @Data

    ,  @Data  주 해 는 다음 과 같은 몇 가지 주해 기능 이 있 습 니 다.  @ToString@Getter@Setter@EqualsAndHashCode@NoArgsConstructor  。
    주의해 야 할 것 은, 동시에 사용 @Data 화해시키다  @AllArgsConstructor  이후 기본 무 참 구조 함수 가 효력 을 잃 었 습 니 다. 필요 하 다 면 다시 설정 해 야 합 니 다.  @NoArgsConstructor
    @Slf4j

    
    //      ,     log   :
    log.info(xxxx);

    @Log

     java.util.logging.Logger  ,직접 사용 변수  log
    @Builder
    bulder 모드 구축 대상.
    @Cleanup

    
    @Cleanup 
    InputStream in = new FileInputStream(args[0]);
    @Cleanup 
    OutputStream out = new FileOutputStream(args[1]);

    , jdk1.7 try with resource

    val

    
     val example = new ArrayList();
     example.add("Hello, World!");

    
     val example = new ArrayList();
     example.add("Hello, World!");

    @NonNull

    
    public NonNullExample(@NonNull Person person) {
        this.name = person.getName();
     }

    
    public NonNullExample(@NonNull Person person) {
        if (person == null) {
          throw new NullPointerException("person");
        }
        this.name = person.getName();
     }

    @SneakyThrows

    , , throw

    
    @SneakyThrows(Exception.class)

    @Synchronized

    , , , 。

    
    private final Object lock = new Object();
    @Synchronized("lock")
    public void foo() {
        // Do something
    }

    ,  synchronized  코드 블록 에 입자 화.

    좋은 웹페이지 즐겨찾기