프로그래밍/Spring & Spring boot

02 Spring : Bean 등록방법_ XML based

pupu91 2022. 9. 1. 15:44
반응형

1. XML based

 

  •  MemberDTO
public class MemberDTO {
	
	private int sequence;
	private String id;
	private String pwd;
	private String name;
	
	public MemberDTO() {}

	public MemberDTO(int sequence, String id, String pwd, String name) {
		super();
		this.sequence = sequence;
		this.id = id;
		this.pwd = pwd;
		this.name = name;
	}

	public int getSequence() {
		return sequence;
	}

	public void setSequence(int sequence) {
		this.sequence = sequence;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getPwd() {
		return pwd;
	}

	public void setPwd(String pwd) {
		this.pwd = pwd;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	@Override
	public String toString() {
		return "MemberDTO [sequence=" + sequence + ", id=" + id + ", pwd=" + pwd + ", name=" + name + "]";
	}

 

 

 

 

 

  • spring-context.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
	
MemberDTO bean으로 등록하기
		
  <bean id="member" class="com.greedy.section01.xmlconfig.MemberDTO">
  	<constructor-arg index="0" value="1"/> 
  	<constructor-arg name="id" value="user01"/>
  	<constructor-arg index="2"> <value>pass01</value></constructor-arg>
    <constructor-arg name="name"><value>홍길동</value></constructor-arg>
  	=> 다양한 방법으로 value값 등록가능	
  </bean> 
</beans>

 

 

 

 

 

 

  • 설정 파일 읽어오기 
package com.greedy.section01.xmlconfig;

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

public class Application {

	public static void main(String[] args) {
  설정 메타 정보가 담긴 xml 파일의 경로를 클래스 패스 하위 경로 전부 기술
   ApplicationContext context = new GenericXmlApplicationbContext("com/greedy/section01/xmlconfig/spring-context.xml);

  ◇ bean을 가져오는 방법 ◇
1. bean의 id를 이용해서 bean을 가져오는 방법
   : id를 이용하는 경우 bean의 정확한 타입을 유추할 수 없기 때문에 Object 타입으로 반환하므로 다운 캐스팅 필요
   MemberDTO member = (MemberDTO) context.getBean("member");

2. bean의 클래스 메타 정보를 전달하여 가져오는 방법
   : 가져오려는 bean의 타입이 명확하기 때문에 형변환x
  MemberDTO member = context.getBean(MemberDTO.class); 

3. bean의 id와 클래스 메타 정보를 전달하여 가져오는 방법
   MemberDTO member = context.getBean("member",MemberDTO.class);
   
System.out.println(member);

  }
}
출력 결과
MemberDTO [sequence=1, id=user01, pwd=pass01, name=홍길동]

 

 

 

반응형