728x90
반응형
@Autowired는 IoC 컨테이너에 의해 관리되는 객체와 연결시켜준다.
@Compent & @Service & @Repository는 IoC 컨테이너에 의해 생성, 소멸이 관리된다.
@Service는 서비스에 어노테이션을 붙여주고, @Repository는 레포지토리에 어노테이션을 붙여준다.
주입을 하지 않는경우
@Controller
public class ArticleController {
private final ArticleService articleService;
public ArticleController() {
articleService = new ArticleService();
}
}
생성자 주입
@Controller
public class ArticleController {
private final ArticleService articleService;
@Autowired
public ArticleController(ArticleService articleService) {
this.articleService = articleService;
}
}
// @Component를 붙여도 됨. 하지만 가독성때문에 @Service를 붙임.
@Service
public class ArticleService{
}
필드 주입
@Controller
public class ArticleController {
@Autowired
private final ArticleService articleService;
}
// @Component를 붙여도 됨. 하지만 가독성때문에 @Service를 붙임.
@Service
public class ArticleService{
}
@RequiredArgsConstructor를 활용한 주입
@Controller
@RequiredArgsConstructor
public class ArticleController {
private final ArticleService articleService;
}
// @Component를 붙여도 됨. 하지만 가독성때문에 @Service를 붙임.
@Service
public class ArticleService{
}
728x90
반응형
'Spring Framework' 카테고리의 다른 글
[Spring Framework] N + 1 Query 문제, default_batch_fetch_size로 해결 (0) | 2023.03.30 |
---|---|
[Spring Framework] 엔티티 객체 등록날짜/수정날짜 자동화 (0) | 2023.03.20 |
[Spring Boot] DB 연결하기 (0) | 2023.03.20 |
[Spring Boot] 인텔리제이에서 Spring Boot 자동 빌드 설정 (0) | 2023.03.18 |
[Spring Boot] Spring Initializr로 프로젝트 생성하기 (0) | 2023.03.17 |