spring container

10528 ワード

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();
	}
}

スプリング内のプロファイルを使用してオブジェクトをポップアップおよび使用する方法について説明します.
  • 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 컨테이너를 종료한다
    	}
    }
    

    プロトタイプ設定後、3つのオブジェクトが作成されたことを確認できます.