일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ResponseBody
- 게시판댓글
- 이미지누끼
- 크리스탈레포트그림
- JDBC
- 서블릿용어
- EC@
- 타임존
- 오라클오류
- openaddressing
- import안될때
- 서버기본
- 타임존설정
- lombok
- 자료구조
- 추상클래스
- 크리스탈리포트이미지삽입
- 롬복
- git
- 크리스탈리포트이미지
- 크리스탈레포트이미지
- jdbc연결안됨
- RequestBody
- api문서만들기
- 스토리지기본
- 크리스탈레포트누끼
- @RunWith
- Ajax
- fcmwebpush
- IT기본지식
- Today
- Total
엠마의 개발공부일지
@RequiredArgConstructor 사용하기 (+인텔리제이 롬복(lombok)라이브러리 추가하기) 본문
서비스/리포지토리/도메인을 작성하고, 스프링에서 DI를 이용하여 초기세팅을 할때
SOLID의 DIP(구현체가아닌 인터페이스에 의존)가 지켜지도록하기위해 생성자로 구현체를 넣어주었다.
이 코드만으로도 너무 깔끔하지만, 한단계 더 편하고 깔끔하게 코드를 정리할 수 있다.
생성자 주입하려는 클래스에 @RequiredArgsConstructor를 추가하면 윗부분에 Lombok라이브러리가 추가된다.
이 상태에서는 @RequiredArgsConstructor부분에 빨간줄이 그어지는데, 이는 밑에 @Autowired가 붙은 생성자가 있기때문이다(중복)
@RequiredArgsConstructor는 final이 붙은 필드들의 생성자를 자동으로 만들어주는기능이다.
그래서 생성자와 충돌이되기때문에 빨간줄이 뜬다
아래와 같이 생성자부분을 지워주면 빨간줄은 사라진다.
[인텔리제이에 롬복라이브러리 추가하는방법]
0. 다운로드 및 설정
setting > plugins > lombok 검색하여 다운로드 | Build, Execution,Deployment > Compiler > Annotation Processors > Enable annotation processing체크! |
1. build.gradle 열기
2. 아래의 configurations정보 추가
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
3. 같은페이지 아랫쪽에 dependencies안에 lombok라이브러리 추가
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testCompileOnly 'org.projectlombok:lombok'
testAnnotationProcessor 'org.projectlombok:lombok'
4. 새로고침하기
: 오른쪽 위쪽에 Gradle창 열어서
새로고침을 누르면 끝!
5. 추가되었는지 확인하기!
- External Libraries에서 확인가능함
- 라이브러리 리스트에 ctrl F로 lombok이 있는지 확인하기
[출처] 인프런 - 스프링 핵심원리(기본편) www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/lecture/55490?tab=curriculum
'Stack > Java' 카테고리의 다른 글
[IntelliJ] JAVA 버전 바꾸는 방법(JDK버전) (3) | 2022.02.16 |
---|---|
JAVA 배열(Array)와 리스트(List)의 차이 (0) | 2022.02.15 |
isEqualTo vs isSameTo 비교(깨알 instanceof연산자내용 포함) (0) | 2020.12.09 |
지네릭스(제네릭, Generics) 한장 정리 (0) | 2020.12.04 |
JUnit test를 해야하는이유 (일반 Java test코드랑 비교하기) (0) | 2020.12.03 |