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 | 29 | 30 | 31 |
Tags
- 백엔드 인턴십
- self
- 집계함수
- cerbot
- 파이썬
- 함수
- numpy
- RDS
- 클래스
- spring boot
- yaml
- Comprehension
- mock server
- 람다함수
- 토이프로젝트
- API
- EC2
- 행렬곱
- PYTHON
- Django
- 조건연산
- 프리온보딩
- 파이써닉코드
- sqlalchemy
- 코딩테스트
- 컴프리헨션
- todo project
- Jar배포
- 프로그래머스
- Postman
Archives
- Today
- Total
build my life
[Spring] 의존 관계 주입 방법 본문
728x90
@Autowired
의존 객체 타입에 해당하는 스프링 빈 자동 주입 어노테이션
주입할 대상이 없을 경우 오류 발생
@Autowired(required = false) // 주입할 대상이 없을 경우 동작
생성자 주입
- 생성자를 통해서 의존 관계를 주입 받는 방법
- 불변이면서 필수인 상황에서 사용
- 생성자가 하나일 경우에는 @Autowired 생략 가능
- 객체를 생성할 때 딱 1번만 호출 되므로 이후 호출될 일이 없음, 불변하게 설계 가능
수정자 주입(setter 주입)
- 선택적이거나 변경 가능 상황에서 사용
- setXxx 메서드를 public으로 열어두어야 함 => 누군가가 호출해서 실수로 변경할 수 있다는 단점이 있음
자바빈 프로퍼티
- 객체지향 언어인 자바에서 객체는 고유한 속성(특징)을 가지는데, 그 속성을 칭하는 단어를 프로퍼티(property)라고 함
- 자바빈 정의에 의해 getter(), setter() 메서드로 실제의 값(field)에 접근할 수 있음
- 참고링크
필드 주입
- 필드에 바로 주입하는 방법
- 예시
@Autowired private MemberRepository memberRepository
- 외부에서 변경이 불가능하다는 단점
- 스프링 설정을 목적으로 @Configuration 같은 곳에서만 특별한 용도로 사용
일반 메서드 주입
- 일반 메서드 통해서 주입받을 수 있음
- 여러 필드를 주입 받을 수 있음
- 일반적으로 잘 사용하지 않음
⭐ 의존 관계 자동 주입은 스프링 컨테이너가 관리하는 스프링 빈이어야 동작함
728x90
'Spring' 카테고리의 다른 글
스코프와 프록시 (0) | 2023.07.14 |
---|---|
웹 스코프 (0) | 2023.07.14 |
[Spring] 스프링 컨테이너 (0) | 2023.06.14 |
[Spring] AppConfig를 통한 의존관계 주입 (0) | 2023.06.02 |
[Spring Boot] Spring Initializr (0) | 2023.04.07 |