[Spring] Service & Repository

재우·2023년 11월 4일
0
post-custom-banner

프로그래머스 스진초 과제를 진행하면서 작성한 내용입니다.



이전에 구현했던 Controller에 Service와 Repository를 추가 구현해보자.

구현할때는 DI를 활용해서 Controller -> Service -> Repository -> Service -> Controller 흐름으로 동작하게 해보자.
참고로, 스프링에서는 @Component를 통해 스프링빈으로 등록이 되어있어야 DI를 해줄 수 있다.
Controller, Service, Repository가 어떻게 DI가 가능한지 확인해보자.



@RestController
public class DemoController {

    @Autowired
    private DemoService service;

    @GetMapping("/test")
    public String find(){
        return service.find();
    }
}
  • Controller에서는, @RestController에 비밀이 있다. @RestController는 @Controller를 적용하고 있고, @Controller는 @Component를 적용하고 있다. 그래서 ComponentScan에 의해 DemoController가 스프링 빈으로 등록이 될 수 있는것이다.




@Service
public class DemoService {

    @Autowired
    private DemoRepository repository;

    public String find(){
        return repository.find();
    }
}
  • Service에서는, @Service에 비밀이 있다. @Service는 @Component를 적용하고 있다. 그래서 ComponentScan에 의해 DemoController가 스프링 빈으로 등록이 될 수 있다.




@Repository
public class DemoRepository {
    public String find() {
        return "TEST";
    }
}
  • Repository에서는, @Repository에 비밀이 있다. @Repository는 @Component를 적용하고 있다. 그래서 ComponentScan에 의해 DemoController가 스프링 빈으로 등록이 될 수 있다.
post-custom-banner

0개의 댓글