🌱 오늘의 주제 : 07. 스프링 삼각형과 설정 정보 (1)
🌱 07. 스프링 삼각형과 설정 정보
- POJP(Plain Old Java Object)를 기반으로 스프링 삼각형이라는 애칭을 가진 IoC/DI, AOP, PSA라고 하는 스프링의 3대 프로그래밍 모델.
🌱 스프링 없이 의존성 주입하기 - 생성자를 통한 의존성 주입
Tire tire = new KoreaTire();
Car car = new Car(tire);
- 프로그래밍에서 의존 관계는 new로 표현된다.
- 주입 - 외부에서라는 뜻을 내포하고 있는 단어이며, 예를 들어 외부에서 생상된 타이어를 자동차에 창작하는 작업이 주입이다.
- 생성자를 통한 의존성 주입을 할 경우, 확정성이 좋아진다. 예를 들어, Car는 Tire 인터페이스를 구현한 어떠한 객체가 들어오기만 하면 정상적으로 작동하게 된다.
🌱 스프링 없이 의존성 주입하기 - 속성을 통한 의존성 주입
Tire tire = new KoreaTire();
Car car = new Car();
car.setTire(tire);
- 생성자를 통해 의존성을 주입하는 것은, 예를 들어, 자동차를 생산할 때 한번 타이어를 장착하면 더이상 타이어를 교체할 방법이 없는 문제를 해결해준다. 즉, 운전자가 원할 때 Car의 Tire를 교체하는 것이다.
🌱 스프링을 통한 의존성 주입 - XML 파일 이용
ApplicationContext context = new ClassPathXmlApplicationContext("expert002.xml", Driver.class);
Tire tire = (Tire)context.getBean("tire");
Car car = (Car)context.getBean("car);
car.setTire(tire);
- 스프링을 도입해서 얻는 장점은, 예를들어, 자동차의 타이어 브랜드를 변경할 때 재컴파일/재배포하지 않아도 XML파일만 수정하면 프로그램의 실행 결과를 바꿀 수 있다.
🌱 스프링을 통한 의존성 주입 - 스프링 설정 파일(XML)에서 속성 주입
<bean id="koreaTire" class="expert003.KoreaTire"><bean>
<bean id="americaTire" class="expert003.AmericaTire"><bean>
<bean id="car" class="expert003.Car">
<property name="tire" ref="koreaTire"></property>
</bean>
- property 부분이 새로 생겼으며, car.setTire(tire) 부분을 XML파일의 property 태그를 이용해 대채한 것이다.
'Spring > Book - 스프링 입문을 위한 자바 객체 지향의 원리와 이해' 카테고리의 다른 글
00A. 스프링 MVC를 이용한 게시판 구축 (1) (0) | 2023.05.19 |
---|---|
07. Spring - 의존성 주입 (0) | 2023.04.28 |
06. 스프링이 사랑한 디자인 패턴 (0) | 2023.04.07 |
05. 객체 지향 설계 5원칙 - SOLID (0) | 2023.03.31 |
04. 자바가 확장한 객체 지향 (2) (0) | 2023.03.24 |