spring container

jinkyung·2021년 2월 9일
0

Spring

목록 보기
3/24

Bean : 관리되어지는 객체, 스프링 프레임워크에서 관리하는 객체

파일 생성

bean 객체 만들기
name 또는 id , name은 특수문자까지도 올 수 있다.
보통은 id를 더 많이 쓴다.


TVUser

package polymorphism;

import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;

public class TVUser {
	static BeanFactory factory = new BeanFactory();
	
	
	public static void main(String[] args) {
		// xml 파일을 읽어서 객체를 만들어라 
		AbstractApplicationContext factory 
				= new GenericXmlApplicationContext("applicationContext.xml");
		
		TV tv = (TV)factory.getBean("tv");
		tv.powerOn();
		tv.powerOff();
		tv.volumeUp();
		tv.volumeDown();
		
		// Spring container를 종료한다 
		factory.close();
	}
}


스프링에서 configuration 파일을 이용하여 어떻게 객체를 꺼내고 사용하는지 알아보자.

  • bean 객체를 만들 때 특정 메서드를 실행하도록 설정할 수 있다

초기화 메서드

종료 메서드


  • 자주 쓰지 않는 것은 lazy-init(지연 초기화) 설정 가능

lazy-init 설정 전

설정

설정 후에는 콘솔에 아무것도 입력되지 않는다.


  • scope
package polymorphism;

import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;

public class TVUser {
	static BeanFactory factory = new BeanFactory();
	
	public static void main(String[] args) {
		/*
		// 객체가 각각 생긴다(총 3개)
		TV tv0 = new SamsungTV();
		TV tv1 = new SamsungTV();
		TV tv2 = new SamsungTV();
		*/
		
		/*
		// 객체가 1개 생긴다
		TV tv0 = new SamsungTV();
		TV tv1 = tv0;
		TV tv2 = tv1;
		*/
		
		AbstractApplicationContext factory = 
				new GenericXmlApplicationContext("applicationContext.xml");
		
		/* Spring은 bean을 생성할 때 기본적으로 Singleton Pattern을 사용한다
		 * 즉, 1개만 생성해서 다음부터는 같은 bean을 리턴한다
		 */
		TV tv0 = (TV)factory.getBean("tv");
		TV tv1 = (TV)factory.getBean("tv");
		TV tv2 = (TV)factory.getBean("tv");
		
		System.out.println(tv0);
		System.out.println(tv1);
		System.out.println(tv2);
		
		factory.close();   // Spring 컨테이너를 종료한다
	}
}

prototype 설정 후 객체가 3개씩 만들어지는 것을 확인할 수 있다.

0개의 댓글