프로그래밍/Spring & Spring boot

04 Spring : Bean 등록방법_java based

pupu91 2022. 9. 1. 16:21
반응형

3. java based 

@Bean

public 반환형 bean이름(){

                 return 객체;

}

 

  • DTO 
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 + "]";
	}

 

 

 

 

 

  • 메타 정보를 가지고 있는 클래스 정의
@Configuration 
: 클래스가 설정 메타 정보를 가지고 있다는 의미
@Bean
: Bean 등록시 작성, 메소드 위에
  @Bean(name="myName") or @Bean("maName")의 형식으로 bean의 id를 설정할 수 있음
  여러 속성을 정의할 수 있고, name만 쓴다면 이름만 써도 가능

@Configuration 
public class ContextConfiguration {
   
   @Bean(name="member")
	public MemberDTO getMember() {
		return new MemberDTO(1, "user01", "pass01", "홍길동");
	}	
}

 

 

 

 

 

  • 빈 팩토리 설정하고  출력하기

 AnnotationConfigApplicationContext

: 어노테이션 설정 정보를 읽어서 컨테이너 설정을 하는 구현체

   Spring aop 라이브러리 필요

public class Application {

	public static void main(String[] args) {
	 
	  인자로 @Configuration 어노테이션이 달린 
      설정 클래스의 메타 정보를 전달하여 인스턴스를 생성
	  ApplicationContext context = new AnnotationConfigApplicationContext(ContextConfiguration.class); 
	
      값 꺼내기
	  MemberDTO member = context.getBean("member",MemberDTO.class);
	  System.out.println(member);	
	}
}
출력 결과
MemberDTO [sequence=1, id=user01, pwd=pass01, name=홍길동]

 

 

반응형