-
자바 16 레코드 클래스프로젝트/잡스캐너 2022. 9. 8. 21:41
기존 불변 데이터 객체 생성시에 모든 필드에 final을 사용하고 생성자, 접근자 메서드(getter), 출력 메서드(toString) 등을 재정의 해주어야 한다. lombock을 사용해 @AllArgsConstructor @Getter @ToString 등을 사용해 좀 더 편하게 정의할 수 있기는 하지만 매번 final과 @을 달아줘야하는 건 마찬가지다.
그래서 자바 16부터 record class를 공식적으로 제공한다. record class를 사용하면 간결한 방식으로 불변 데이터 객체를 정의할 수 있다.
모든 필드에 아래 적용
- private final
- 생성자
- getter()
- toString()
- equals()
- hashCode()
불변 데이터 객체로 사용해야하는 properties에 적합하여 이에 적용했다. 불변 데이터 객체로 사용하는 DTO에도 적용할 만한 것 같다.@ConstructorBinding @ConfigurationProperties(prefix = "auth") public record AuthProperties( Client client, Jwt jwt ) { public record Client( Kakao kakao, Google google, Github github ) { public record Kakao( String tokenUrl, String redirectUrl, String clientId, String clientSecret ) { } public record Google( String tokenUrl, String redirectUrl, String clientId, String clientSecret ) { } public record Github( String tokenUrl, String redirectUrl, String clientId, String clientSecret ) { } } public record Jwt( String appTokenSecret, String refreshTokenSecret, String appTokenExpiry, String refreshTokenExpiry ) { } }참고
https://scshim.tistory.com/372
https://marrrang.tistory.com/71'프로젝트 > 잡스캐너' 카테고리의 다른 글
Optional 활용하기, 람다식에서 지역변수 변경하기 (0) 2022.09.08 클래스다이어그램 - 의존성 그려보기 (0) 2022.09.08 불변 객체 생성 방법 - 정적 팩토리 메서드와 빌더 패턴 (0) 2022.09.08 properties 불변 객체로 주입하기 (0) 2022.09.08 채용 공고 수집하기 (0) 2022.08.28