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 |
Tags
- 자바
- ai
- puppeteer
- k8s
- TCP
- 프로그래머스
- 스프링부트
- Apollo
- MapReduce
- 백준알고리즘
- java11
- Mongoose
- nodejs
- bufferdreader
- 스프링
- eof
- Scanner
- LangChain
- Docker
- mongodb
- java
- Android
- redis
- Spring
- 조건문
- graphql
- HTTP
- restapi
- mysql
- 서버
Archives
- Today
- Total
자라나라 개발머리
[Spring/스프링 입문] 스프링 빈과 의존관계 본문
1. 의존관계
컨트롤러에 명령이 들어오면 서비스를 통해 회원가입하고 서비스는 리포지토리를 통해 데이터를 저장하고 조회한다.
이를 클래스 간에 의존관계가 있다고 표현하는데 이 의존관계를 주입하는 방식에는 두가지가 있다.
① 컴포넌트 스캔과 자동 의존관계 설정
@Controller, @Service, @Repository
각 어노테이션 안에는 @Component 어노테이션이 포함되어 있는데 이 어노테이션이 있으면 스프링 컨테이너에 하나의 싱글톤(유일한) 객체로 등록이 된다. 이것이 컴포넌트 스캔이다.
@Autowired : 자동으로 의존성 주입
생성자 주입, 필드 주입, setter 주입이 있는데 주로 생성자 주입을 사용한다.
② 자바 코드로 직접 스프링 빈 등록하기
자바 클래스를 새로 생성해서 아래 어노테이션을 이용해 등록
@Configuration: 해당 어노테이션이 붙어 있는 클래스의 안의 메소드를 빈으로 인식.
@Bean: 해당 어노테이션이 붙어 있는 메소드를 스프링 빈으로 등록한다.
2. 사용 방식
실무에서는 주로 *컨트롤러-서비스-리포지토리 같은 정형화된 코드는 컴포넌트 스캔을 이용한다.
정형화 되지 않은 코드거나 상황에 따라 변경이 필요한 코드일 땐 의존 관계를 스프링 빈으로 등록한다
*컨트롤러-서비스-리포지토리
1. 컨트롤러를 통해서 외부 요청을 받으면
2. 서비스에서 비즈니스 로직을 처리하고
3. 리포지토리에서 데이터를 저장한다.
'프레임워크 > Spring' 카테고리의 다른 글
[Spring/스프링 핵심 원리] IOC, DI, 컨테이너 (0) | 2023.01.05 |
---|---|
[Spring/스프링 핵심 원리] 객체 지향 설계와 스프링,SOLID (0) | 2023.01.02 |
[Spring/스프링 입문] 스프링 프로젝트 초간단 개요 (정리) (0) | 2023.01.02 |
[Spring/스프링 입문] AOP (0) | 2023.01.02 |
[Spring/스프링 입문] 정적 컨텐츠, MVC와 템플릿 엔진, API (0) | 2022.11.11 |