
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 프로그래밍 입문(최범균)
'공부 > Spring' 카테고리의 다른 글
[Spring] Chapter 07 - Spring AOP (0) | 2021.06.13 |
---|---|
[Spring] Chapter 06 - 빈라이클사이클과 범위 (0) | 2021.06.13 |
[Spring] Chapter 05 - 컴포넌트 스캔 (0) | 2021.06.13 |
[Spring] Chapter 04 - 의존 자동 주입 (0) | 2021.06.13 |
[Spring] Chapter 03 - 스프링 DI(Dependency Injection) (0) | 2021.06.13 |