Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- syncronized
- 지도학습
- Do It 정직하게 코딩하며 배우는 딥러닝 입문
- 의존성주입
- @Autowired
- 노션
- 스프링
- 백기선 강좌
- 노션 Formula
- jetbrains
- Proxy 패턴
- 스프링 빈
- Dependency Injection
- 기계학습
- 강화학습
- express-generator
- 딥러닝
- timezone error
- 스프링부트 에러
- express
- 비지도학습
- database error
- 스프링 프레임워크
- krpano
- 노드
- 강좌 정리
- 프레임워크
- aop
- PSA
- IoC 컨테이너
Archives
- Today
- Total
hyungmuk's blog
스프링 입문 강좌 정리 - 빈 (Bean) 본문
빈이란 ?
객체인데 IoC 컨테이너가 관리하는 객체를 말한다.
같은 OwnerController 지만 1번은 빈이 아니지만 2번은 빈이다.
왜냐하면 1번은 new가 사용 되었고 2번은 applicationContext에서 관리하는 객체를 가져온 것이기 때문이다.
- 빈은 applicationContext가 알고 있는객체, 즉, applicationContext가 관리하는 객체여야 한다.
- 이러한 '빈'들만 의존성 주입이 가능하다.
빈 등록 방법
- Component Scannig
- @Component
- @Repository
- @Service
- @Controller
- @Configuration
- 직접 XML이나 자바 설정 파일에 등록
- @Component
빈을 꺼내는 방법
- @Autowired 또는 @Inject 사용
- ApplicationContext에서 getBean()으로 직접 꺼냄
컴포넌트 스캔
@ComponentScan, @SpringBootApplication(스프링부트인 경우) 어노테이션이 있는 파일 위치에서부터 모든 하위 패키지에 있는 모든 클래스를 다 찾아서 @Component, @Repository, @Service, @Controller, @Configuration 등의 어노테이션이 붙어 있는 클래스를 빈으로 등록한다.
@Repository는 특이한 형태로 빈으로 등록이 된다. 스프링 데이터 JPA가 제공해주는 기능에 의해서 빈으로 등록 된다. 특정한 어노테이션이 없더라도 특정한 인터페이스를 상속받고 있는 클래스를 찾아서 구현체를 내부적으로 알아서 빈으로 등록 해준다.
직접 빈 정의
- return 하는 객체 자체가 빈으로 등록이 된다.
- 빈을 직접 정의하면 @Component 같은 ****어노테이션을 붙이지 않아도 된다.
@Autowired 어노테이션 사용
- IoC 컨테이너에 들어있는 빈을 주입받아서 사용할 수 있게 한다.
- applicationContext.getBean()을 사용하는 방법보다는 이방법을 많이 사용한다.
https://www.youtube.com/watch?v=qaIQfl0ob84&list=PLfI752FpVCS8_5t29DWnsrL9NudvKDAKY&index=7
'개발 & 공부 > 스프링' 카테고리의 다른 글
스프링 입문강좌 정리 - PSA (0) | 2020.03.28 |
---|---|
스프링 입문강좌 정리 - AOP 애노테이션 (0) | 2020.03.27 |
스프링 입문강좌 정리 - AOP (0) | 2020.03.24 |
스프링 입문 강좌 정리 - 의존성 주입(Dependency Injection) (0) | 2020.03.20 |
스프링 입문 강좌 정리 - IoC 컨테이너 (0) | 2020.03.19 |