chap02 스프링 시작하기 : Bean과 Bean 검색하여 쓰기

8824 단어 SpringSpring

Bean과 Bean 검색하여 쓰는 아주 간단한 예제 코드이다.
디렉토리 구조는 다음과 같다.

Greeter 클래스

package chap02;

public class Greeter {

    private String format;

    public String greet(String guest){
        return String.format(format, guest);
    }

    public void setFormat(String format){
        this.format = format;
    }
}

Appcontext 클래스

package chap02;


import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class Appcontext {
    /*
    스프링은 객체를 생성하고 초기화하는 기능제공
    스프링이 생성하는 객체 = Bean객체
     */
    @Bean // bean annotation을 붙이면, 해당 메서드가 생성한 객체를 스프링이 관리하는 빈 객체로 등록한다.
    public Greeter greeter(){ // 빈 Bean객체에 정보를 담는 메소드
        Greeter g = new Greeter();
        g.setFormat("%s, 안녕하세요!");
        return g;
    }
}

Main 클래스

package chap02;

// AnnotationConfigApplicationContext 클래스는 자바 설정에서 정보를 읽어와, 빈 객체를 생성하고 관리한다.
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import sun.awt.AppContext;

public class Main {
    public static void main(String[] args){
        // AppContext 클래스를 생성자 파라미터로 전달하여
        // AppContext에 정의한 @Bean 정보를 읽어와서 객체를 생성하고 초기화한다.
        // 이걸 돕는 것이 AnnotationConfigApplicationContext 클래스
        AnnotationConfigApplicationContext ctx =
                new AnnotationConfigApplicationContext(AppContext.class);
        // 자바 설정을 읽어와 bean객체를 검색한다. (첫번째 param:검색하려는 Bean의 이름, 두번째 param : 검색할 bean객체의 타입)
        Greeter g = ctx.getBean("greeter", Greeter.class); // 해당 bean을 검색하여 리턴한다
        String msg = g.greet("스프링"); // 읽어온 bean의 메소드를 실행한다.
        System.out.println(msg);
        ctx.close();
    }
}

의의

bean을 간단하게 만들어보고 @Bean
다른 클래스에서 AnnotationConfigApplicationContext를 활용하여
bean을 검색하여(getBean) 활용하는 걸 해봤다.

객체 정보 가져오는 클래스들

  • AnnotationConfigApplicationContext : 자바 annotation을 이용한 클래스로부터 객체 설정 정보를 가져온다.
    • ApplicationContext(혹은 BeanFactory)는 bean 객체의 생성, 초기화, 보관, 제거등을 관리하고 있어서, Container라고도 부른다.
      (이 책에서도, ApplicationContext나 BeanFactory등을 스프링 컨테이너라고 표현할것임.)
  • GenericXmlApplicationContext : XML로부터 객체설정정보를 가져온다.

좋은 웹페이지 즐겨찾기