Spring Framework 에서 서비스 계층(Service Layer) 에 속하는 클래스에 붙여 사용됨. 이 어노테이션은
@Component
의 특수한 형태로, 주로 비즈니스 로직을 구현하는 클래스에 사용됨. Spring 컨테이너는@Service
가 붙은 클래스를 자동으로 스캔하고 빈으로 등록함.
@Service
는 어플리케이션의 비즈니스 로직을 처리하는 클래스에 사용됨.@Serivce
가 붙은 클래스는 Spring의 컴포넌트 스캔(Component Scan) 에 의해 자동으로 빈으로 등록됨. 따라서 별도의 설정 없이도 다른 클래스에서 @Autowired
로 주입받아 사용할 수 있음@Component
를 사용해도 동일한 효과를 얻을 수 있지만, @Service
는 이 클래스가 비즈니스 로직을 처리하는 서비스 계층에 속함을 명확히 하기 위해 사용됨. 이를 통해 코드를 더 읽기 쉽게 만들고, 유지보수를 용이하게 함import org.springframework.stereotype.Service;
@Service
public class UserService {
public User findUserById(Long id) {
// 비즈니스 로직 구현
return new User(id, "Yuno");
}
}
위 예제에서 UserService
클래스는 @Serivce
어노테이션으로 표시되었고, 이 클래스는 Spring에 의해 빈으로 관리됨. 이 서비스는 비즈니스 로직 (예: 데이터베이스에서 사용자를 검색하는 기능) 을 처리함.