의존이란?
class A가 제대로 작동하기 위해서 class B의 기능이 필요하다
쉽게 말하면 ,A class 는 B class에 의존적이다 라고 한다
그림1)
그림1은A가 B에 의존하고 있음을 나타낸다.
의존하고 있다는 것은 곧 A가 B를 사용하고 있다는 것이다.
쉬운 예제를 통해 알아 보겠습니다
1.ICE
1 2 3 4 5 6 7 8 9 | package kim2; public class Ice implements Ame { public void get() { System.out.println("나는 존나 차가워"); } } | cs |
2.Hot
1 2 3 4 5 6 7 8 9 | package kim2; public class Hot implements Ame{ public void get() { System.out.println("나는 존나 뜨거워"); } } | cs |
3.Coffee
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | package kim2; public class Coffee { private Ame ame; public Coffee(Ame ame) { this.ame=ame; } public void coffeeType() { ame.get(); } } | cs |
4.Main
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | package kim2; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Hot hot=new Hot(); Ice ice=new Ice(); Coffee coffee=new Coffee(hot); coffee.coffeeType(); } } | cs |
5.interface Ame
1 2 3 4 5 6 7 8 | package kim2; public interface Ame { public void get(); } | cs |
이코드를 보면 hot과 ice클래스 코드가 짧아서 왜구지 이렇게 쓰는 건가?
하시겠지만 코드가 길어졌을때는 변경할 코드가 적어서 효율적으로 사용할 수 있습니다
코드를 이해하는데 있어서 도움이 되는 그림 ~!
스프링의 DI(의존성 주입)설정
DI 방식1 : 생성자 방식
말그대로 생성자를 통해 생성될 때
파라미터로 넘겨받아 의존성을 주입해주는 방식.
생성자함수의 파라미터의 순서대로 넣어줘야 한다.
DI 방식2 : 설정 메소드 방식
스프링에서는 생성자외에도 set으로 시작하는 프로퍼티 설정메소드 주입받는 방법을를 지원함.
1.메소드 이름은 set으로 시작
2.set뒤에 프로퍼티 이름의 첫글자는 대문자
3.하나의 파라미터를 가짐
4.파라미터의 타입이 프로퍼티의 타입
두 방식의 장점
-생성자 방식= 빈객체를 생성하는 시점에 모든 의존 객체가 주입된다 .
-설정 메서드 방식=<property>태그의 name속성을 통해 어떤 의존 객체가 주입되는지 알 수 있다.
2개 이상의 설정 파일 사용
스프링으로 어플리케이션을 개발하게 되면 많은 빈(Bean)을 설정하는 경우가 흔하게 발생하는데
이러한 빈들을 하나의 xml파일로 관히하기가 어려울 것이다
그르ㅐ서 스프링은 두개 이상의 설정파일을 이용해서 컨테이너를 생성할 수 있다
'SPRING' 카테고리의 다른 글
스프링 개발 환경 구축 1-1 (0) | 2018.10.18 |
---|---|
DB 연결 테스트,Controller와 View의 연결 (0) | 2018.09.05 |
주의 할 사항 (0) | 2018.09.04 |
스프링 실행 과정(1) (0) | 2018.09.04 |
[스프링 개발환경 설정 ] (0) | 2018.09.04 |