공부/Spring / / 2021. 6. 13. 08:00

[Spring]Chapter 02 - 스프링 시작하기

300x250
 

 

 

 

초보 웹 개발자를 위한 스프링5 프로그래밍 입문

 

Spring 기초 내용을 학습하기 위해서 책을 하나 선정해서 공부하기로 했다. 선정한 책은 초보 웹 개발자를 위한 스프링 5 프로그래밍 입문으로 저자는 최범균님이다.  꾸준히 공부하면서 포스팅해서 내용 정리 할 예정이지만,, 쉽지 않다.

 

Chapter 01은 스프링 소개와 개발 환경 구축에 관련한 내용인데 책은 이클립스와 Maven을 사용하고, 나는 intelliJ를 사용해서 구글링으로 따로 환경설정을 했다. intellij랑 Gradle로 환경 세팅을 했다. [요기]

 

 

그래서 Chapter 02부터 시작했다.

 

 - 스프링 객체는 컨테이너

 - 싱글톤 객체

 

 

※ 정리

 - 스프링 객체는 컨테이너

  : @Bean 붙어있는 메서드는 스프링에 의해 내부적으로 등록되어 Bean객체의 생성, 초기화, 보관, 제거 등을 관리한다.

 

 - 싱글톤 객체

 : 스프링은 한개의 빈 객체를 생성한다.

 

 

스프링은 객체 컨테이너


 

 

 

ㅁ AnotaionconfigApplicationContext : 자바 애노테이션을 이용한 클래스로부터 객체 설정 정보

ㅁ GenericXmlApplicationContext : XML로부터 객체 설정 정보

ㅁ GenericGroovyApplicationContext : 그루비 코드를 이용해 설정 정보

 

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;
    }

}
package chap02;

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

@Configuration
public class AppContext {

    // greeter() 스프링이 관리하는 빈객체로 등록
    @Bean
        public Greeter greeter(){
        Greeter g= new Greeter();
        g.setFormat("%s, 권예은 안뇽!");
        return g;
    }

}
package chap02;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Main {

    public static void main(String[] args){
        //자바 설정에서 정보를 읽어와 빈 객체 생성하고 관리, AppContext 클래스를 생성자로 넘기고, AppContext의 정보를 읽어온다.

        //1. 컨테이너 초기화
        AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(AppContext.class);


        //2. 컨테이너에서 빈 객체를 구해서 사용
        Greeter g= ctx.getBean("greeter",Greeter.class);  // getBean("메서 이름인 빈 객체 이름",검색할 빈 객체의 타입) , gretter()메서드가 생성한 Greeter객체를 생성한다.
        String msg = g.greet("스프링");
        System.out.println(msg);

        //3. 컨테이너 종료
        ctx.close();

    }

}

 

Spring이 객체 컨테이너인 이유는 Bean객체의 생성, 초기화, 보관, 제거 등을 관리하기 때문이다.

 

Bean객체가 뭐지?? 


Bean객체는 스프링이 생성하는 객체를 Bean객체라고 부른다. @Bean 애노테이션이 붙어있으면 해당 메서드가 생성한 객체를 스프링이 관리하는 Bean객체로 등록해서, 생성, 초기화, 보관, 제거 등을 관리한다.

위의 예제 코드에서@Bean이 붙어있는 greeter 메서드는 AnotaionconfigApplicationContext  (= 컨테이너)에서 내부적으로 빈 객체와 빈 이름을 연결하는 정보를 갖고있다.

AnotaionconfigApplicationContext 클래스로  내부적으로 갖고 있는 객체 설정 정보를 가져와 @Bean이 붙어있는 greeter 메서드에서 생성한 Greeter 객체를 받고 있는 코드이다.

 

 

싱글톤 객체


 


싱글톤 객체란, 단일 객체(single object)를 의미한다. 스프링의 경우 별도 설정을 하지 않을 경우 한개의 빈 객체를 생성하며, 이 빈 객체를 싱글톤 범위를 갖는다고 표현한다.

 

gretter 빈객체를 g1과 g2에 할당해 비교해보면 true로, 같은 객체 =  한개의 빈 객체가 생성된 것을 알수있다.

 

결과)

 

 

 

REFERENCE


 초보 웹 개발자를 위한 스프링 5 프로그래밍 입문(최범균)

300x250
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유