Home
Java
Spring @Component (스프링 빈 식별하기)
devfoxstar
devfoxstar
March 30, 2022
1 min

@Component 애너테이션은 클래스가 스프링 빈을 표현한다는 사실을 나타냅니다.
애플리케이션에서는 용도에 맞게 @Component를 사용합니다.

@Controller - 컨트롤러
@Service - 서비스
@Repository  - DAO

각각의 애너테이션은 다시 @Component로 메타 애너테이션 됩니다.

애너테이션의 값을 지정하는 방법은 세가지가 있습니다.
아래 세가지 방식은 모두 동일한 값을 나타냅니다.

애너테이션에서 별도로 값을 지정하지 않으면, 클래스의 첫 번째 글자를 소문자로 변환해서 빈 이름으로 사용합니다.

import org.springframework.stereotype.Service;

@Service(value="springTestService")
public class SpringTestServiceImpl implements SpringTestService {
}

@Service("springTestService")
public class SpringTestServiceImpl implements SpringTestService {
}

@Service
public class SpringTestServiceImpl implements SpringTestService {
}

그럼 스프링에서는 어떻게 컴포넌트 애너테이션을 통해 빈 클래스를 등록할까요?
바로 클래스경로 스캐닝 (classpath scanning) 기능을 통해 컨테이너에 자동으로 등록합니다.

ComponentScan 애너테이션을 통해 간단하게 설정이 가능합니다.
참고로 예전에는 XML 파일에 직접 스캐닝 설정을 추가했습니다.

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
@ComponentScan(basePackages = {"패키지명"})
public class ApplicationConfig {
}

@Configuration
@ComponentScan(basePackageClasses = {"클래스명"})
public class ApplicationConfig {
}

일반적인 프로젝트에서는 패키지명을 지정해 줍니다.
또한 필터 옵션을 통해 특정 클래스만 등록이나 제외가 가능합니다.

스캐닝 기능은 나중에 자세히 알아보겠습니다.


Tags

#Java#Spring#Component#Bean

Related Posts

Java - Record class (불변 데이터 객체 만들기)
June 11, 2024
1 min
© 2024, All Rights Reserved.

Quick Links

About Me

Media