티스토리 뷰

Java

[Spring] 예제 코드로 시작하기

Alledy 2019. 6. 28. 16:15

Spring - 예제 코드로 시작하기

  • 기본적인 스프링 구조를 알아보기 위한 예제 코드를 실행해본다. 파일을 3개 생성한다.

    1. Greeter.java - 콘솔에 간단한 메시지 출력할 클래스
    2. AppContext.java - 스프링 설정 파일
    3. Main.java - 메인 메서드로 Greeter, 스프링 실행하는 클래스
    package example;
    
    public class Greeter {
        private String format;
        
        public String greet(String guest) {
            return String.format(format, guest); 
        }
        
        public void setFormat(String format) {
            this.format = format; 
        }
    }
    
    package example;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    @Configuration
    public class AppContext {
        
        @Bean 
        public Greeter greeter() {
            Greeter g = new Greeter();
            g.setFormat("%s, 안녕하세요!");
            return g;
        }
        
    }
    
    package example;
    
    import org.springframework.context.annotation.AnnotationConfigApplicationContext;
    
    public class Main {
        public static void main(String[] args) {
            // 설정 정보를 이용해 bean 객체 생성
            AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(AppContext.class);
            // bean 객체를 제공
            Greeter g = ctx.getBean("greeter", Greeter.class);
            String msg = g.greet("스프링");
            System.out.println(msg);
            ctx.close();
        }
    }
    

    실행하면 콘솔에 스프링, 안녕하세요! 를 출력한다.

 

스프링은 객체 컨테이너

  • 위 코드에서 중요한 것은 AnnotationConfigApplicationContext 클래스이다. 이 클래스는 BeanFactory, ApplicationContext라는 인터페이스를 구현한 클래스 중 하나다.
  • 이 클래스는 자바 annotation을 이용하여 클래스로부터 객체 설정 정보를 가져온다. 이 외에도 XML로부터 객체 설정 정보를 가져오는 GenericXmlApplicationContext, 그루비 코드를 이용해 설정 정보를 가져오는 GenericGroovyApplicationContext 등이 있다.
  • 어떤 구현 클래스를 사용하든, 각 구현 클래스는 설정 정보로부터 빈(Bean)이라 불리는 객체를 생성하고 그 객체를 내부에 보관한다. 그리고 getBean()이라는 메서드를 실행하면 해당하는 bean 객체를 제공한다.

  • ApplicationContext나 BeanFactory의 경우 빈 객체를 생성, 보관, 초기화, 보관 등을 관리하고 있어서 컨테이너라고 부른다.

싱글톤 객체

  • 별도 설정이 없을 경우 스프링은 한 개의 bean객체만을 생성하며, 이 때 bean객체는 싱글톤 범위를 갖는다고 표현할 수 있다. 스프링은 기본적으로 한 개의 @Bean annotaion에 대해 한 개의 bean객체를 생성한다.
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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 31
글 보관함