티스토리 뷰

Back-End/Spring Framework

Annotiation: @Bean

Jordy-torvalds 2019. 7. 14. 17:25

@Bean : Configuration 내에서 사용되는 어노테이션으로 특정 클래스 생성시 전처리를 하기 위해 사용되는 어노테이션으로 추정됩니다.

 

아래는 예제 입니다.

/* Bear.java */

public class Bear
{
    private String name;    
    private String age;    

	/*    SET, GET ... ETC...    */
}
/* BearConfiguration.java */

@Configuration	// 이 클래스가 Configuration 역할을 하는 클래스 임을 알리는 Annotation.
public class BearConfiguration
{    

  @Bean
  public Bear bearFirstBean()
  {
    System.out.println(" 첫번째 빈");
    Bear bear = new Bear();
    bear.setName("테스트1");
    bear.setAge(11);
    return bear;
  }
  
  @Bean(name="secondBean")
  public Bear bearSecondBean()
  {

    System.out.println(" 두번째 빈");
    Bear bear2 = new Bear();
    bear2.setName("테스트2");
    bear2.setAge(22);
    return bear2;
  }    
  
  @Bean
  public Bear bearFinalBean()
  {

    System.out.println(" 첫번째 빈");
    Bear bear3 = new Bear();
    bear3.setName("테스트3");
    bear3.setAge(3);
    return bear3;
  }
  
}
public class Main {

    public static void main(String[] args) {
        ApplicationContext context = new AnnotationConfigApplicationContext(BearConfiguration.class);

		// 메서드 명 호출 + 업 캐스팅
        Bear bear1 = (Bear) context.getBean("bearFirstBean");
        
        // name 값으로 호출 + 클래스 타입 할당으로 자동 변환
        Bear2 bear2 = context.getBean("secondBean",Bear.class);
        
        // 메서드 명 호출 + 클래스 타입 할당으로 자동 변환
        Bear3 bear3 = context.getBean("bearFinalBean", Bear.class);
    }
}

 

메인 메서드에서 해당 빈을 얻어 왔을 때 Configuration 의 각 메서드가 실행되고 콘솔에 텍스트가 출력 됩니다.

빈을 호출하는 방법은 위와 같이 세 가지 방법이 있습니다.

적절히 활용하면 되겠습니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함