일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 어른 상어
- 수식 최대화
- 프로그래머스
- 스타트 택시
- SW Expert Academy
- 미세먼지 안녕!
- 12869번
- 키패드 누르기
- 2020 카카오 인턴십
- QueryDSL 기초
- 백준 알고리즘
- 1789번
- 파이썬
- 14499번
- 거울 설치
- 빛의 경로 사이클
- SW ExpertAcademy
- 1038번
- 12865번
- python
- HTML 기초
- 16234번
- 보석 쇼핑
- 경주로 건설
- 15686번
- 감소하는 수
- 9095번
- 베스트엘범
- 19238번
- 17144번
- Today
- Total
보물창고 블로그
Bean이란 무엇일까? 본문
Bean 이란 스프링 IOC 컨테이너가 관리하는 객체입니다. 특징은 오로지 Bean 들만 의존성 주입을 해줍니다.
그렇다면 IOC 컨테이너에 Bean을 어떻게 등록하는 걸까요? 크게 2가지 방법이 있습니다.
첫 번째 방법은 Component Scanning입니다.
Component Scanning의 방법은 @Component 어노테이션을 사용하는 방법입니다.
@Repositoy , @Service, @Controller, @Configuration 등과 같은 어노테이션에 @Component 어노테이션이 붙어있습니다. @SpringBootApplication 어노테이션에 붙어있는 @ComponentScan 어노테이션을 통해 @Component 어노테이션이 붙은 객체들을 IOC 컨테이너에 Bean 객체로 등록시켜 줍니다.
2번째 방법은 일일이 XML이나 자바 설정 파일(Config)에 등록하는 방법입니다.
@Configuration
public class HoseConfig{
@Bean
public HoseService hoseService(){
return new HoseService();
}
}
위 코드는 자바 설정 파일(Config)에 @Bean 어노테이션을 사용하여 HoseService 객체를 IOC 컨테이너에 등록하는 예시 코드입니다.
그렇다면 IOC 컨테이너에서 Bean 객체를 꺼내 쓰는 방법은 뭘까요?
@Autowired 어노테이션 또는 ApplicationConetxt에서 getBean()으로 직접 꺼내 쓸 수 있습니다.
public class DiTest{
@Autowired
ApplicationContext applicationContext;
public void testDI(){
HoseService bean = applicationContext.getBean(HoseService.class);
}
}
위 코드에서 @Autowired 어노테이션을 통해 ApplicationContext 객체를 의존성 주입을 받아서 가져오고, testDI 메서드에서 applicationContext.getBean() 메서드를 사용하여 IOC 컨테이너에 있는 HoseService 타입의 객체를 가져오고 있습니다.
'웹 개발 > SpringBoot' 카테고리의 다른 글
IOC란 무엇일까? (0) | 2022.04.24 |
---|---|
API 버전 관리 (0) | 2021.09.25 |