스터디📖/Spring

3. 의존 객체 - 1

호프 2021. 7. 2. 22:36

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC_renew/dashboard

 

자바 스프링 프레임워크(renew ver.) - 신입 프로그래머를 위한 강좌 - 인프런 | 강의

스프링 프레임워크 기본부터 실전 사용법까지! 충실하고 폭넓은 설명과 예제를 통해 현장에 바로 투입되어 활약하는 개발자로 거듭나세요., 자바 스프링 프레임워크로 내 개발자 커리어에 봄이

www.inflearn.com

섹션 3. 의존객체

8강 스프링 설정 파일 분리

8-1 스프링 설정 파일 분리

스프링 설정 파일 ex) applicationContext.xml 에 너무 많은 내용이 담기면 가독성, 관리 문제 발생

 

1. 기능별로 구분

  • 분리한 스프링 설정 파일의 이름도 기능과 관련된 이름으로 짓는 게 좋음.
  • xml파일을 가져올 때 문자열 배열에 xml파일을 넣어서 인자로 준다.
    String[] appCtxs = {"classpath:appCtx1.xml", "classpath:appCtx2.xml", "classpath:appCtx2.xml"};
    GenericXmlApplicationContext ctx = new GenericXmlApplicationContext(appCtxs);​
     

2. import tag 사용

  • 하나의 커다란 설정 파일로 만들 수 있음. 이 설정 파일 하나만 classpath로 가져오면 된다.
    <import resource="classpath:appCtx2.xml"/>
    <improt resource="classpath:appCtx3.xml"/>​

** 메인 메소드 여러개일 경우 프로젝트를 실행할 때 메인 메소드를 결정해야 함.

 

8-2 빈(Bean)의 범위

  • 싱글톤(Singleton)
    스프링 컨테이너에서 생성된 빈(Bean) 객체의 경우 동일한 타입에 대해서는 기본적으로 한 개만 생성이 되며, getBean() 메소드로 여러 번 호출되어도 동일한 객체가 반환된다.

 

  • 프로토타입(Prototype)
    getBean() 메소드를 호출할 때마다 새로운 객체가 생성되어 반환된다. 개발자가 별도로 스프링 설정 파일에서 빈(Bean) 객체를 정의할 때 scope속성을 명시해 주어야 한다.
<bean id="dependencyBean" class="scope.ex.DependencyBean" scope="prototype">
  <constructor-arg ref="injectionBean"/>
  <property name="injectionBean" ref="injectionBean"/>
</bean>