Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 반려견 유기농
- 반려견 유기농 사료
- 동인천 맛집
- 국비지원 예습
- 반려견 열사병
- 쿠팡매크로
- 반려견 사료등급
- 반려견 더위
- 서울대입구 맛집
- 신포동 맛집
- 강아지
- 강아지 홀리스틱
- 자동화봇
- 홀리스틱 유기농
- 티켓팅메크로
- 반려견 종류
- 샤로수길 맛집
- 부산 맛집
- 반려견
- 강아지종류
- 티켓팅매크로
- 강아지 유기농
- 강아지 종류
- 닥스훈트
- 샤로수길 데이트
- 강아지 유기농 사료
- 강아지 열사병
- 강아지 더위
- 반려견 홀리스틱
- 쿠팡메크로
Archives
- Today
- Total
심심한잉여의 잡동사니
[Spring]의존성 주입 @RequiredArgsConstructor 본문
반응형
스프링팀에서 필드주입(field injection) 대신 생성자 주입(Constructor based injection)을 권장헀다.
이유는 편리하다는 것 이외에 장점이 없었기 때문이다.
@Autowired 를 통해 필드주입을 하는 방법을 배웠으나 회사에 와보니 해당 어노테이션 및 필드주입을 하지 않았다.
따라서 어디에서 의존성 주입을 하는지 궁금해져서 어노테이션들을 다 확인 한 결과
@RequiredArgsConstructor 라는 어노테이션과 생성자 주입을 알게되었다.
생성자 주입을 하게 될 경우
1. 순환 참조 방지
2. 테스트 코드 작성 용이
3. 코드 악취 제거
4. 객체 변이 방지
라는 장점을 볼 수 있다.
// 생성자 주입
@Controller
public class TestController {
private final TestService service;
public TestController(TestService service){
this.service = service;
}
}
위 코드가 생성자 주입 코드이다.
하지만 이렇게 항상 쳐준다는 것은 매우 귀찮은 일이다.
이를 해결하기 위해 롬복 라이브러리에서 @RequiredArgsConstructor 라는 어노테이션을 만들어줬다.
// RequiredArgsConstructor 어노테이션을 이용한 생성자주입
@Controller
@RequiredArgsConstructor
public class TestController {
private final TestService service;
}
위 코드와 같이 @RequiredArgsConstructor 를 사용하게 되면 추가 코드 없이
주입을 원하는 객체 인스턴스에 final 혹은 @notNull 어노테이션을 붙이면 자동적으로 생성자 주입이 만들어진다.
반응형
'코딩일기 > Spring&SpringBoot' 카테고리의 다른 글
[Spring]스프링 빈(Bean)이란? (0) | 2022.09.13 |
---|---|
[Maven&Gradle]메이븐(Maven)과 그래들(Gradle) (0) | 2022.03.27 |
[Spring]필터(Filter) 와 인터셉터(Interceptor)차이 및 용도 (0) | 2022.03.21 |
REST, REST API, RESTful 이란? (0) | 2022.03.13 |
[Spring]좋은 객체 지향의 설계 5가지 SOLID (0) | 2022.03.10 |