스프링 프레임워크에서는 클래스를 빈(Bean)으로 등록하여 의존성 주입(Dependency Injection)과 관리를 쉽게 할 수 있도록 어노테이션을 사용합니다.
@Service란?
@Service는 스프링의 주요 어노테이션 중 하나로, 비즈니스 로직을 포함하는 클래스를 스프링 빈으로 등록하려 할 때 사용합니다. @Service는 @Component를 상속받아 작성되어 있으며, 특정 계층을 나타내기 위해 사용됩니다. 스프링 컨테이너는 @Service가 붙은 클래스를 찾아서 빈으로 등록하며, 이 과정은 컴포넌트 스캔(Component Scan)이라고 합니다.
@Service 예제
package com.example.demo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class MyService {
private final MyRepository myRepository;
@Autowired
public MyService(MyRepository myRepository) {
this.myRepository = myRepository;
}
public String fetchData() {
return myRepository.getData();
}
}
위 예제에서 MyService 클래스는 비즈니스 로직을 포함하며 @Service 어노테이션이 붙어 있어서 스프링 컨테이너에 의해 관리됩니다. MyService는 MyRepository 클래스와 협력하여 데이터를 가져오는 기능을 제공합니다. @Autowired 어노테이션을 사용하여 MyRepository 인스턴스를 주입받고, 이를 통해 fetchData() 메서드에서 데이터를 가져옵니다.
@Service는 일반적으로 비즈니스 로직을 포함하는 클래스에 사용되며, 다른 계층이나 역할을 나타내는 다른 어노테이션도 있습니다. 예를 들어, @Repository는 데이터 액세스 로직을 포함하는 클래스에 사용되며, @Controller는 웹 요청을 처리하는 클래스에 사용됩니다. 이들 어노테이션도 마찬가지로 @Component를 상속받아 작성되어 있습니다.
'Spring' 카테고리의 다른 글
Spring Annotation 12. @Configuration (0) | 2023.04.19 |
---|---|
Spring Annotation 11. @Repository (0) | 2023.04.19 |
Spring Annotation 9. @Component (0) | 2023.04.19 |
Spring Annotation 8. @ComponentScan (0) | 2023.04.19 |
Spring Annotation 7. @Transactional (0) | 2023.04.19 |
댓글