728x90
반응형
[Spring] 빈 ( Bean )
빈 ( Bean )
-> 스프링 IoC 컨테이너가 관리하는 객체
-> applicationContext가 만들어서 그 안에 담고 있는 객체
// Bean이 아니다
OwnerController ownerController = new OwnerController();
// Bean이다.
OwnerController ownerController = applicationContext.getBean( OwnerController.class );
Bean 등록 방법
-> 1) Component Scanning( Annotation )을 통한 방법
- @ComponentScan: 어디서부터 Component를 찾을지 나타내는 Annotation
- @Component
- @Repository, @Service, @Controller, @Configuration
-> 2) 직접 XML이나 자바 설정 파일에 등록 ( @Configuration )
@Configuration
public class SampleConfig {
@Bean
public SampleController sampleController() {
return new SampleController();
}
}
Bean 꺼내는 방법
-> 1) @Autowired or @Inject - (생성자, 필드, Setter에 가능): 가급적이면 생성자에 붙히는 것이 좋다.
// 1) 필드
@Autowired
private PetRepository petRepository;
// 2) 생성자
private final PetRepository petRepository;
@Autowired
public void ownerController ( PetRepository petRepository ) {
this.petRepository = petRepository;
}
// 3) Setter
@Autowired
public void setPetRepository ( PetRepository petRepository ) {
this.petRepository = petRepository;
}
-> 2) ApplicationContext.getBean() - 직접 꺼내는 방법
728x90
반응형
'Programing > Spring FrameWork' 카테고리의 다른 글
[Spring] 해당 타입의 빈이 여러개인 경우 (0) | 2021.07.20 |
---|---|
[Spring] Bean 주입방법 비교(xml vs Java) (0) | 2021.07.13 |
[Spring] PSA ( Portable Service Abstraction ) (0) | 2021.01.18 |
[Spring] AOP ( Aspect Oriented Programming ) (0) | 2021.01.18 |
[Spring] IoC (Inversion of Control) - 제어권의 역전 (0) | 2020.11.30 |