Spring

Spring 의존성 주입 실습

정숙씨의 쏠쏠한 코딩 2021. 10. 26. 23:15
  • Spring IoC컨테이너가 관리하는 자바 객체를 빈(Bean)이라는 용어로 부른다.
  • Spring 에서의 빈은 ApplicationContext가 알고있는 객체, 즉 ApplicationContext가 만들어서 그 안에 담고있는 객체를 의미한다.
  • SpringIoC 컨테이너에 빈을 등록 하는 방법은 두가지가 있다.
    • Compnent Scanning
    • 빈 설정 파일에 직접 빈을 등록 (XML)
  • Setter를 이용한 DI 실습(XML 설정 방식)
  • bean 태그 속성
속성 이름 설명
id 빈 객체의 고유 이름으로, 빈 id를 이용하여 빈에 접근
name 객체의 별칭
class 생성할 클래스, 패키지 명까지 함께 입력 되어야 한다.
constructor-arg 생성자를 이용해 값을 주입할 때 사용한다
property setter를 이용해 값을 주입할때 사용한다.

-applicationContext.xml-

1. 테스트 Bean 주입

name -> PersonServiceImpl내 생성자를 사용하여 전달 받을 변수

value -> name이라는 변수 생성자에 데이터를 전달

2. PersonService 인터페이스 생성

인터페이스 사용 이유 -> Bean 객체 주입 후 오버라이드 하여 좀 더 자유로운 프로세스 구상을 위해 인터페이스 사용

3.PersonServiceImpl 클래스 생성

PersonServiceImpl 클래스에서 PersonService 인터페이스를 상속 받은 후 

setter 생성자를 사용하여 DI 의존성 주입을 받고있는걸 확인할수있다.

4. 메인 클래스에서의 빈 호출방법

1.BeanFactory 클래스를 호출 -> xmlBeanFactory 객체를 생성한다 -> FileSystemResource 객체를 사용하여 applicationContext.xml 파일을 호출한다.

2. 호출한 applicationContext.xml에 등록된 personService의 Bean을 가져온다.

person 인터페이스 클래스내 제작한 sayHello() 메서드를 호출한다.

5. 결과 값

- 비슷한 예제 -

작동 원리를 비슷하나 Spring의 DI 주입을 통한 간단 차량 이동 시간 및 이동 비용을 나타낸 로직이다.

1.applicationContext.xml

2.Trans.class (interface 형식)

3. myTrans.class

4.MainTrans.class