Tech/Spring | Spring Boot
[Lombok] @Cleanup, @All/NoArgsConstructor, @RequiredArgsConstructor
싱브이
2024. 4. 12. 12:09
728x90
반응형
알아두면 쓸모있는 어노테이션! 사실 내가 알아두려고 적어두는 글 ㅎ 다른 것도 점차점차 추가해야할듯 !
1. @Cleanup
public String getTime() {
String now = null;
try(Connection connection = ConnectionUtil.INSTANCE.getConnection();
PreparedStatement preparedStatement = connection.prepareStatement("select noew()");
ResultSet resultSet = preparedStatement.executeQuery();){
resultSet.next();
now = resultSet.getString(1);
} catch (Exception e){
e.printStackTrace();
}
}
↓
public String getTime() throws Exception{
@Cleanup Connection connection = ConnectionUtil.INSTANCE.getConnection();
@Cleanup PreparedStatement preparedStatement = connection.prepareStatement("select noew()");
@Cleanup ResultSet resultSet = preparedStatement.executeQuery();
resultSet.next();
String now = resultSet.getString(1);
return now;
}
@Cleanup 은 try-with-resource와 비슷한데 더 깔끔하게 코드를 생성할 수 있다.
@Cleanup이 추가된 변수는 해당 메소드가 끝날 때 close()가 보장된다!
2. @AllArgsConstructor, @NoArgsConstructor
아래는 생성자를 자동 생성해주는 어노테이션 종류이다.
- @NoArgsConstructor : 파라미터가 없는 디폴트 생성자를 생성
- @AllArgsConstructor : 모든 필드 값을 파라미터로 받는 생성자를 생성
- @RequiredArgsConstructor : final이나 @NonNull으로 선언된 필드만을 파라미터로 받는 생성자를 생성
*참고
생성자 주입 방식 규칙
- 주입 받아야 하는 객체의 변수는 final로 작성
- 생성자를 이용해서 해당 변수를 생성자의 파라미터로 지정
*빈이 두개일 때는?
객체가 두 개이면 스프링은 어떤 것을 주입해야하는지 알 수 없다.
그래서 둘 중 하나의 우선순위를 어노테이션으로 지정해주어야한다.
@Primary
@Primary로 지정하면 지정된 빈을 등록한다.
@Qualifier
@Qualifier는 특정한 이름의 객체를 주입받는 방식이다. 주입받는 곳에서 그 이름으로 주입받는다 !
예) @Qualifier("normal")
728x90
반응형