Spring 조립 Bean - XML 을 통 해 Bean 조립

12926 단어 Spring
Spring 실전 (4 판) 노트 보기    (코드 양 이 중복 되 고 간단 한 코드 지만 다음 에 보기 편 하고 이해 하기 쉬 우 니 이렇게 반복 합 시다.)
Spring XML 설정 에 서 는 bean 을 설명 하 는 방식 만 있 습 니 다. 요 소 를 사용 하고 class 속성 을 지정 합 니 다.Spring 은 여기에서 필요 한 정 보 를 얻어 bean 을 만 듭 니 다.
요약: spring 설정 의 bean 은 두 가지 가 있 습 니 다.  간단 한 bean 과 성명 DI (다른 bean 에 의존 해 야 하 는 복잡 한 bean)
PS: xml 설정 설명 DI 두 가지 구조 기 주입 과 setter 방법 주입 이 있 는데 이 두 가지 주입 방식 은 다음 과 같다.
     자바 클래스 를 설명 할 때 구조 기 주입 은 정의 구조 기 를 표시 해 야 합 니 다.setter 방법 은 속성 을 정의 하 는 setter 방법 이 필요 합 니 다.
     xml 프로필 에서 구조 기 주입 은?  원소 name 속성 선택 가능;setter 방식 은 요소 이 고 name 을 지정 합 니 다.name = 자바 클래스 속성 명
그러면 이 글 1 강 XML 설정 설명 간단 bean 2 강 XML 설정 사용 구조 설명 DI  3. XML 설정 은 setter 방법 으로 DI 를 설명 합 니 다.     
1. xml 설정 간단 한 Bean - 정의 Bean
public class CompactDisc {
	
	private String artist = "dream_s";
	private String music = "litter bird";
	public void play() {
		System.out.println("XML CONFIG   playing  "+ music + "  by  "+ artist);		
	}
}

1. xml 간단 한 Bean - -- src 디 렉 터 리 에 xml 프로필 을 새로 만 들 면 eclipse 에서 File - New - Spring Bean Configuration File
   이 bean 의 클래스 를 만 들 려 면 class 속성 을 통 해 지정 하고 모든 한 정 된 클래스 이름 을 사용 해 야 합 니 다.id 속성 을 통 해 이름 을 짓 는 것 을 좋아 합 니 다.
    이 xml 프로필 = 자바 설정 에서 사용 하 는 @ Configure 주해 의 설정 클래스
    요소 로 bean 설명 하기    원소 = 자바 설정 의 @ Bean 주석



 
 
 


1. xml 설정 간단 한 Bean - - 테스트 Spring 은 이 bean 을 자동 으로 발견 하고 만 들 수 있 습 니 다.
Spring 설정 파일 읽 는 방법 FileSystemXmlApplication Context 인 자 는 xml 프로필 이 컴퓨터 에서 절대 경로 입 니 다.
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

public class CDPlayerTest {

	//    :     ,   ApplicationContext
	ApplicationContext context = new FileSystemXmlApplicationContext("D:/workspace/SpringBeanDemo/src/bean-config.xml");
	//    :       bean 
	private CompactDisc compactDisc = (CompactDisc) context.getBean("CompactDisc"); 
	@Test
	public void testPlayer() {
		compactDisc.play();
	}
}

콘 솔 출력 - XML CONFIG  playing  litter bird  by  dream_s  
2. XML 설정 설명 DI 의 구조 기 주입 ---XML 설정 설명 은 다른 Bean 의 복잡 한 Bean 에 의존 합 니 다.  의 구조 기 주입    
    XML 설정 설명 은 주입 (DI) 방식 에 의존 합 니 다. 구조 기 주입 과 setter 방법 주입 이 있 습 니 다.
    그 중에서 구조 기 주입 은 다음 과 같은 네 가지 상황 을 말 했다. 유형 조립, 글자 양 조립, 집합 조립 (집합 요 소 는 기본 데이터 유형 과 사용자 정의 유형 포함)
    2.1 XML 설정 설명 DI 구조 기 주입 유형 조립  ---XML 설정 설명 은 다른 Bean 의 복잡 한 Bean 구조 기 주입 유형 에 의존 합 니 다.   
      먼저 CDPlayer bean 을 정의 할 때 CompactDisc 형식 을 받 아들 이 는 구조 기 가 있 습 니 다.
      Spring 은 원소 의 하위 원소 원 소 를 통 해 구조 기 주입 을 실현 하고,  요소 ref 속성 구현 유형 조립   요 소 는 Spring 에 게 compactDisc 라 는 ID 의 bean 인용 을 CDPlayer 의 구조 기 에 전달 할 것 을 알려 줍 니 다.   
package com.demo.SpringBeanDemo;

public class CDPlayer {

    //        DI  
    private CompactDisc compactDisc;   
    
	public CDPlayer(CompactDisc compactDisc) {
		this.compactDisc = compactDisc;
	}
	public  void  play() {
		compactDisc.play();		
	}
}



 

 
         
 


     테스트  XML 설정 은 구조 기 를 통 해 DI 를 실현 합 니 다.
      콘 솔 XML CONFIG 두 번 입력  playing  litter bird  by  dream_s
package com.demo.SpringBeanDemo;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

public class CDPlayerTest {

	//    :     ,   ApplicationContext,   bean   
	ApplicationContext context = new FileSystemXmlApplicationContext("D:/workspace/SpringBeanDemo/src/bean-config.xml");
	//    :       bean
	private CompactDisc compactDisc = (CompactDisc) context.getBean("CompactDisc");  
        //     DI
        private CDPlayer cdPlayer = (CDPlayer) context.getBean("cdPlayer"); 
	@Test
	public void testPlayer() {
		compactDisc.play();
		cdPlayer.play();
	}
}

  2.2 XML 설정 설명 DI 의 구조 기 주입 의 글자 양 주입 ---XML 설정 설명 은 다른 Bean 의 복잡 한 Bean 구조 기 주입 의 글자 크기 에 의존 합 니 다.      지금까지 우리 가 한 DI 는 보통 유형의 조립 을 말 합 니 다. 즉, 대상 의 인용 을 다른 대상 에 의존 하 는 것 입 니 다. 그리고 가끔 우리 가 해 야 할 일 은 하나의 글자 값 으로 대상 을 설정 하 는 것 입 니 다.
 Spring 사용 요소  value 속성 글자 크기 조립 실현 이 속성 을 통 해 주어진 값 을 글자 의 양 으로 구조 기 에 주입 해 야 한 다 는 것 을 나타 낸다.
import java.util.List;

public class BlankCompactDisc {

	private String music;
	private String artist;	 

	public BlankCompactDisc(String music, String artist) {
		this.music = music;
		this.artist = artist;
	}
	 
	public void play() {
		System.out.println("XML CONFIG  value DI playing  "+ music + "  by  "+ artist);
	}
}

  xml 프로필 에서 Blank CompactDisc 를 Spring Bean 으로 설정 합 니 다. 



	
                       
		
			
	


   테스트 xml 설정 통과 원소 value 속성 글자 양 조립 주입 실현
  콘 솔 출력: XML CONFIG value DI playing  please happy today  by  dream_s
package com.demo.SpringBeanDemo;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

public class CDPlayerTest {

	ApplicationContext context = new FileSystemXmlApplicationContext("D:/workspace/SpringBeanDemo/src/bean-config.xml");
        private BlankCompactDisc blankCompactDisc =  (BlankCompactDisc) context.getBean("blankCompactDisc"); 
	@Test
	public void testPlayer() {	 
		blankCompactDisc.play();
	}
}

2.3 XML 설정 설명 DI 의 구조 기 주입 의 조립 집합 - XML 설정 성명 은 다른 Bean 의 복잡 한 Bean 의 구조 기 주입 의 조립 집합 에 의존한다
        어떤 종류의 속성 이 집합 이 라면 xml 설정 을 통 해 Spring Bean 이 라 고 설명 할 때 하위 요 소 를 통 해
집합 요소 가 기본 데이터 형식 이 라면 하위 요 소 를 사용 할 수 있 습 니 다.집합 요소 가 사용자 정의 형식 이 라면 하위 요 소 를 사용 할 수 있 습 니 다.
       예 를 들 어 다음 의 예 를 들 어 Blank CompactDisc 는 두 가지 속성 이 모두 List 집합 이 고 하 나 는 기본 데이터 형식 인 Sring 이 며 다른 하 나 는 CompactDisc 형식 입 니 다.Spring 의 bean 으로 등록 할 때 xml 의 기록 은 다음 과 같 습 니 다.
     Blank CompactDisc 클래스 를 설명 하고 구조 함 수 를 작성 합 니 다.  
package com.demo.SpringBeanDemo;

import java.util.List;

public class BlankCompactDisc {

	private List trackers;
	private List compactDiscs;
	
	public BlankCompactDisc(List trackers, List compactDiscs) {
		this.trackers = trackers;
		this.compactDiscs = compactDiscs;
	}
	public void play() {
		for (String tracker : trackers) {
			System.out.println("XML CONFIG  List DI playing  "+ tracker);
		}
		for(CompactDisc compactDisc:compactDiscs){
			compactDisc.play();
		}
	}
}

xml 를 Spring bean 으로 설정



	

			 
		
			
				tracker1
				tracker2
				tracker3
			
		
		
			
				
			
		
	


  xml 설정 을 테스트 할 때 집합 을 설치 합 니 다. 집합 내 요 소 를 포함 하여 기본 데이터 형식 과 사용자 정의 형식 입 니 다.
package com.demo.SpringBeanDemo;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

public class CDPlayerTest {

	ApplicationContext context = new FileSystemXmlApplicationContext("D:/workspace/SpringBeanDemo/src/bean-config.xml");
    private BlankCompactDisc blankCompactDisc =  (BlankCompactDisc) context.getBean("blankCompactDisc"); 
	@Test
	public void testPlayer() {	 
		blankCompactDisc.play();
	}
}

   콘 솔 출력:
XML CONFIG  List DI playing  tracker1 XML CONFIG  List DI playing  tracker2 XML CONFIG  List DI playing  tracker3 XML CONFIG   playing  litter bird  by  dream_s
3 XML 설정 설명 DI 의 setter 방법 주입     
     xml 설정 설명 DI 두 가지 구조 기 주입 과 setter 방법 주입 이 있 는데 이 두 가지 주입 방식 은 다음 과 같다.
     자바 류 는 구조 기 주입 에 정의 구조 기 를 표시 해 야 합 니 다.setter 방법 은 속성 을 정의 하 는 setter 방법 이 필요 합 니 다.
     xml 프로필 에서 구조 기 주입 은?  원소 name 속성 선택 가능;setter 방식 은 요소 이 고 name 을 지정 합 니 다.name = 자바 클래스 속성 명
      setter 주입 도 포함: 유형 주입, 글자 양 주입, 집합 주입 직접 붙 이기 예 는 다음 과 같 습 니 다.
자바 클래스 를 정의 할 때 정의 setter 방법 보이 기
package com.demo.SpringBeanDemo;

import java.util.List;

public class BlankCompactDisc {
    private CompactDisc compactDisc; //1.    
	private String artist ; //2.     
	private String music;
    private List trackers; //3.                  (   )
	private List compactDiscs; //4               
    
	public void setCompactDisc(CompactDisc compactDisc) {
		this.compactDisc = compactDisc;
	}
	public void setArtist(String artist) {
		this.artist = artist;
	}
	public void setMusic(String music) {
		this.music = music;
	}
	public void setTracker(List trackers) {
		this.trackers = trackers;
	}
	public void setCompactDiscs(List compactDiscs) {
		this.compactDiscs = compactDiscs;
	}
	public void play() {
		//  setter       
		compactDisc.play();
		//  setter       
		System.out.println("XML CONFIG   playing  "+ music + "  by  "+ artist);		
		//  setter                   (   )
		for (String tracker : trackers) {
			System.out.println("this is tracker: "+tracker);
		}
		//  setter                  
		for (CompactDisc compactDisc : compactDiscs) {
			compactDisc.play();
		}
	}
}

 xml 프로필 에서 자바 류 사 운 드 를 spring bean 으로 표시 할 때 속성 사용



	

		
	     
	     
	     
	      	 
		 
		 
		 
			 
				 tracker 1
				 tracker 2
			 
		 
		 
		 
			 
				 
			 
		 
 	


테스트 코드 는 구조 기 가 주입 한 테스트 코드 와 같다.
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

public class CDPlayerTest {

	ApplicationContext context = new FileSystemXmlApplicationContext("D:/workspace/SpringBeanDemo/src/bean-config.xml");
    private BlankCompactDisc blankCompactDisc =  (BlankCompactDisc) context.getBean("blankCompactDisc"); 
	@Test
	public void testPlayer() {	 
		blankCompactDisc.play();
	}
}

좋은 웹페이지 즐겨찾기