@Component - 일반적인 스테레오 타입
@Repository - db를 가지는 클래스
@Service - 비즈니스 로직을 가지는 클래스
@Controller - 웹 앱에서 웹요청과 응답을 처리하는 클래스에서 사용한다.
@Autowired 정밀한 의존관계주입이 필요한 경우
@Resource 기능면에서 Autowired와 동일. 선언위치가 제한적임. setter 메서드에서만 적용가능.
차이점-Autowired는 타입으로, Resource는 이름으로 연결한다.
@Value 단순한 값을 주입 , (ex> @Value("gibeom") String name; )
@Qualifier @Autowired와 같이 사용됨. Autowired는 타입으로 찾아 주입하므로, 동일한 타입 bean객체가 여러개 있을경우 어떤 bean을 찾는지 따로 설정해야함.
객체가 여러개 있으면 컨테이너가 누군지 찾을수가 없다.
프로퍼티 형식으로 Bean을 등록할때 @Autowired(required=false) 를 주면 없으면 그냥 패스하라는 표시이다.
예를들어
@Autowired(required=false)
@Qualifier("printer1")
private Printer printer;
printer1이라는 bean을 찾을수가 없으면 그냥 에러없이 넘어가고 생성자를 호출한다.
(자바에서는 프로퍼티 초기화 먼저하고 생성자 호출한다.)
'Developer' 카테고리의 다른 글
ORM이란? (0) | 2020.07.29 |
---|---|
Spring 모듈(Core, Aop) (0) | 2020.07.29 |
JUnit 이란? (0) | 2020.07.29 |
application context(어플리케이션 콘텍스트)? (0) | 2020.07.29 |
Bean 이란? 빈 팩토리란? (0) | 2020.07.29 |