1. Bean 등록 의존관계 주입 Annotation 종류
@Component
컴포넌트를 나타내는 일반적인 스테레오 타입으로 <bean> 태그와 동일한 역할을 한다.
@Repository
퍼시스턴스(persistence)레이어, 영속성을 가지는 속성(파일, 데이터베이스)을 가진 클래스
@Service
서비스레이어, 비즈니스 로직을 가진 클래스
@Controller
프리젠테이션, 레이어, 웹 어플리케이션에서 웹 요청과 응답을 처리하는 클래스
@Autowired
- 정밀한 의존관계 주입(Dependency Injection)이 필요한 경우 유용하다.
- @Autowired는 변수, setter메서드, 생성자, 일반메서드에 적용 가능하다.
- @Autowired는 <property>, <constructor-arg> 태그와 동일한 역할을 한다.
- 의존하는 객체를 주입할 떄 Type을 이용한다.
@Resource
- 어플리케이션에서 필요로 하는 자원을 자동 연결할 떄 사용된다.
- @Resource는 변수, setter메서드에 적용 가능하다.
- 의존하는 객체를 주입할 때 주로 Name을 이용한다.
@value
- 단순한 값을 주입할 때 사용되는 어노테이션이다.
- @Value("Spring")은 <property.. value="Spring" /> 과 동일한 역할이다.
@Qualifier
- @Qualifier는 @Autowired 어노테이션과 같이 사용되어 진다.
- @Autowired는 타입으로 찾아서 주입하므로 동일한 타입의 Bean 객체가 여러개 존재할때
특정 Bean을 찾기 위해서는 @Qualifier를 같이 사용해야 한다.
@Bean
- @Bean 어노테이션은 새로운 빈 객체를 제공할때 사용되며 @Bean이 적용된 메서드의 이름을
Bean의 식별값으로 사용한다.
@Configuration
- 클래스에 @Configuration 어노테이션을 선언하는 것은 스프링 IoC 컨테이너가 해당 클래스를
Bean 정의의 설정으로 사용한다는 것을 나타낸다.
<context:component-scan> 태그
@Component를 통해 자동으로 Bean을 등록하고 @Autowired로 의존관계를 주입받는
어노테이션을 클래스에서 선언하여 사용했을 경우에는 해당 클래스가 위치한 특정 패키지를 scan하기 위한 설정을
XML에 해주어야 한다.
1 | <context:component-scan base-package="di.annot" /> | cs |
<context:include-filter> 태그 ( 자동 스캔 대상에 포함시킬 클래스 )
<context:exclude-filter>태그 ( 자동 스캔 대상에 포함시키지 않을 클래스 )
를 사용하여 구체적으로 명시할 수 있다.
'전체 > Spring' 카테고리의 다른 글
MyBatis 개념, 특징, DB 액세스 아키텍처, 데이터 액세스 계층 흐름도, 주요 컴포넌트 역할 정리 (0) | 2019.02.24 |
---|---|
Bean 등록 전략(XML 단독 사용, 어노테이션 XML 혼용 사용, 어노테이션 단독 사용) (0) | 2019.02.23 |
jUnit 개념, 특징, 어노테이션, 메서드 (1) | 2019.02.23 |
IoC와 Spring DI (0) | 2019.02.23 |
Spring Framework 개념, 전략, 특징, 기능요소 (0) | 2019.02.23 |