@Service

Yuno·2024년 8월 18일
0

Spring Framework 에서 서비스 계층(Service Layer) 에 속하는 클래스에 붙여 사용됨. 이 어노테이션은 @Component 의 특수한 형태로, 주로 비즈니스 로직을 구현하는 클래스에 사용됨. Spring 컨테이너는 @Service 가 붙은 클래스를 자동으로 스캔하고 빈으로 등록함.


📌 주요 특징

  1. 비즈니스 로직을 담당
  • @Service 는 어플리케이션의 비즈니스 로직을 처리하는 클래스에 사용됨.
    이 클래스는 데이터 액세스 계층(DAO 또는 Repository) 과 상호 작용하고, 컨트롤러가 요청한 작업을 수행하는 역할을 함
  1. 자동 빈 등록
  • @Serivce 가 붙은 클래스는 Spring의 컴포넌트 스캔(Component Scan) 에 의해 자동으로 빈으로 등록됨. 따라서 별도의 설정 없이도 다른 클래스에서 @Autowired 로 주입받아 사용할 수 있음
  1. 명확한 역할 구분
  • @Component 를 사용해도 동일한 효과를 얻을 수 있지만, @Service 는 이 클래스가 비즈니스 로직을 처리하는 서비스 계층에 속함을 명확히 하기 위해 사용됨. 이를 통해 코드를 더 읽기 쉽게 만들고, 유지보수를 용이하게 함
import org.springframework.stereotype.Service;

@Service
public class UserService {
	
    public User findUserById(Long id) {
    	// 비즈니스 로직 구현
        return new User(id, "Yuno");
    }
}

위 예제에서 UserService 클래스는 @Serivce 어노테이션으로 표시되었고, 이 클래스는 Spring에 의해 빈으로 관리됨. 이 서비스는 비즈니스 로직 (예: 데이터베이스에서 사용자를 검색하는 기능) 을 처리함.

profile
Hello World

0개의 댓글