티스토리 뷰
반응형
@Configuration
public class AppContext {
@Bean
public Greeter greeter() {
Greeter g = new Greeter();
g.setFormat("Hello, %s!");
return g;
}
}
@Configuration
- 클래스를 스프링 설정 클래스로 지정
@Bean
- 빈 객체: 스프링이 생성하고 관리하는 객체
- 스프링은 객체를 생성하고 초기화하는 기능을 제공
- @Bean이 붙은 메서드가 생성하는 객체는 스프링이 관리하는 빈 객체로 등록됨
- 해당 어노테이션이 붙은 메서드는 객체를 생성하고 초기화해야 함
public class Main {
public static void main(String[] args) {
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(AppContext.class);
Greeter g = ctx.getBean("greeter", Greeter.class);
String msg = g.greet("spring");
System.out.println(msg);
ctx.close();
}
}
AnnotationConfigApplicationContext
- 자바 설정에서 정보를 읽은 다음, 빈 객체를 생성하고 관리
- 인자로 받은 클래스(AppContext)의 @Bean 정보를 읽고 객체를 생성하고 초기화
getBean
- AnnotationConfigApplicationContext가 생성한 빈 객체를 검색하기 위해 사용
- 첫번째 파라미터: 메서드 이름(@Bean이 붙은 메서드)
- 두번째 파라미터: 검색할 빈 객체의 타입
스프링의 핵심기능은 객체를 생성하고 초기화 하는 것이다. 이는 ApplicationContext라는 인터페이스에 정의되어 있다.
AnnotationConfigApplicationContext는 ApplicationContext를 구현한 클래스이다. AnnotationConfigApplicationContext 클래스는 자바 클래스에서 정보를 읽은 다음, 객체 생성과 초기화를 한다.
BeanFactory
- 가장 위에 있는 인터페이스
- 객체 생성과 검색 관련한 기능을 정의
- getBean 메서드는 이 인터페이스에 정의되어 있음
하단의 클래스들이 객체의 정보를 가져오는 방법
- AnnotationConfigApplicationContext: 클래스
- GenericXmlApplicationContext: XML
- GenericGroovyApplicationContext: 그루비코드
구현 클래스는 설정 정보로부터 빈 객체를 생성하고 내부에 보관하고 getBean 메서드로 빈 객체를 제공한다.
스프링 컨테이너
- 빈 객체를 관리
- Application Context, BeanFactory 등이 해당
- 내부적으로 빈 객체와 빈 이름을 연결하는 정보를 소유
싱글톤 객체
Greeter g1 = ctx.getBean("greeter", Greeter.class);
Greeter g2 = ctx.getBean("greeter", Greeter.class);
System.out.println("(g1 == g2)?" + (g1 == g2)); // true
g1과 g2는 같은 객체이다. 즉, getBean은 같은 객체를 리턴한다.
스프링은 기본적으로 한 개의 빈 객체를 생성한다. 싱글톤은 단일 객체를 의미하고, 하나만 생성된 객체는 싱글톤 범위를 갖는다.
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- java
- 주생성자
- hashcode
- string
- Kotlin In Action
- Kotlin
- pm.expect
- squash merge
- github
- solidity
- pm.test
- git
- go 특징
- postman tests
- mysql
- Basic Type
- python3
- Squash and merge
- 확장 함수
- Python
- 코틀린
- 네이버 2022 공채
- DGS Framework
- 2차 인터뷰
- 코딩테스트
- 1차 인터뷰
- graphql
- postman
- downTo
- postman collection
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함