본문 바로가기
Spring Framework

[Spring Boot] @Autowired와 @Component의 관계

by 올리브영 2023. 3. 20.
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
반응형