[학교]_3주차_스프링 DI 의존_실습

728x90

[EX.3-1] 실습 

  package 'sample1' 실행

객체 간 의존 상태를 확인할 용도

     package 'sample2' 中. MessageBeanEn() 객체로 생성하여 실행

     package 'sample2' 中. MessageBeanKo() 객체로 생성하여 실행


  package 'sample3' 실행 | '스프링' 의 DI 의존 설정을 xml 파일에 정의하고, 스프링을 제대로 시작

[applicationContext.xml] 파일에 스프링 의존 관련 설정을 하는데,
<bean> 객체 등록 시, MessageBeanKo를 등록해둔 상태이므로 main에서 컨테이너 생성 후 getBean() 시 등록되는 빈 객체는 MessageBeanKo가 될 것이다. 

[main] 실행 시, 실제로 MessageBeanKo 클래스의 '안녕하세요, Spring' 이 출력되는 것을 확인할 수 있다.


[Ex.3-2] 실습

[Singleton VS Prototype]

스프링은 기본적으로 빈 객체를 'Singleton'으로 생성한다. 
즉, 매번 생성하는 Bean 객체가 모두 다른 것이 아니라, 모두 같은 것을 반복해서 생성한다는 것.
-> 실제로 실행 결과를 보게 되면 모두 다른 변수에 getBean()으로 받은 Bean객체가 '동일 주소값'을 갖는 것 확인 가능.


[Ex.3-2-2] 실습 

local 에러

cvc-complex-type.3.2.2: Attribute 'local' is not allowed to appear in element 'ref'.


이것은 Spring Framework 4.0부터 local이 없어졌기 때문. 

  (1) 아래와 같이 local로 되어 있는 키워드를 모두 bean으로 바꾸어 준다.


   <entry key="employee:name=alex">
      <ref bean="alex"/>
   </entry



  (2) Spring Bean 3.2 를 포함한다.  [-> 이 방식은 되지 않았다.]

[출처] https://m.blog.naver.com/ndskr/220224835583

local -> bean으로 바꾸고 정상 출력됐다.


728x90