생성자 DI, Setter DI
클래스간 결합 방식들 중 생성자와 setter 방식이 있다.
1. 생성자 방식
생성자 주입은 생성자의 호출 시점에 1회 호출 되는 것이 보장된다. 그렇기 때문에 주입받은 객체가 변하지 않거나, 반드시 객체의 주입이 필요한 경우에 강제하기 위해 사용할 수 있다.
(Spring에서는 생성자 주입 방식을 권장, 지원함)
ExamConsole 클래스에서 Exam이라는 객체를 필요로 할 때
ExamConsle 인스턴스 생성시 Exam 객체를 주입해주는 방식이다.
Exam exam = new exam();
ExamConsole = new ExamConsole(exam);
2. setter 방식
ExamConsole 인스턴스 생성후 setter 메서드를 통해 exam 객체를 주입해주는 방식이다.
Exam exam = new exam();
ExamConsole examConsole = new ExamConsole();
examConsole.setExam(exam);
이런 클래스간의 결합도를 낮추기 위해
Spring에선 DI를 대신해주는 방법이있다.
여러가지 방법이 있지만 기본적으로는 해당 DI에 대한 것을 외부 ex) XML, Class 등등 에서 설정하는 것이다.
728x90
'프로그래밍 > Spring' 카테고리의 다른 글
[Spring] 유효성 검증 - Validation (0) | 2023.11.13 |
---|---|
[Spring] REST API 테스트 코드 작성하기 (0) | 2023.11.06 |
[Spring] 테스트 코드에서 JPA metamodel must not be empty! 예외가 발생할 때 (0) | 2023.11.04 |
[Spring] spring-data-jpa Auditing 사용하기 (2) | 2023.11.01 |
[Spring] 어노테이션 장점과 @Autowired 이용한 DI (0) | 2022.07.24 |