<bean>
등록을 하지 않고 자동적으로 생성하려면 context:component-scan 이라는 엘리먼트를 정의 해야 함
ex) <context:component-scan base-package="kr.co.spring" /> 로 설정되어 있다면?
<bean> 엘리먼트
로 등록할 필요없음주로 변수 위에 설정하여 해당 타입의 객체를 찾아서 자동으로 할당
import : org.springframework.beans.factory.annotation.Autowired
생성자나 메소드, 멤버변수 위에 모두 사용 가능
작동 절차
1. 스프링 컨테이너가 멤버 변수 위에 @Autowired를 확인-> 해당 변수의 타입을 체크
2. 그 타입의 객체가 메모리에 존재하는지를 확인한 후에 그 객체를 변수에 주입
3. 만약 @Autowired가 붙은 객체가 메모리에 없다면
컨테이너가 NoSuchBeanDefinitionException을 발생 시킴
(대상 객체가 메모리에 존재하지 않는다는 의미)
특정 객체의 이름을 이용하여 의존성 주입할 때 사용(@Autowired와 함께 사용)
import : org.springframework.beans.factory.annotation.Qualifier
의존성 주입 대상이 되는 같은 타입의 객체가 2개일때
컨테이너를 어떤 객체를 할당할지 스스로 판단할 수 없어서 에러가 발생함
이때 @Autowired와 @Qualifier(value="value 명") 함께 작성
@Autowired와 동일한 기능을 지원 (차이점은 Autowired는 스프링 전용, Inject는 자바전용)
import : javax.inject.Inject
@Autowired와 @Qualifier의 기능을 결합한 어노테이션
import : javax.annotation.Resource
Autowired와 Qualifier의 기능을 결합한 어노테이션
@Autowired는 변수의 타입을 기준으로 객체를 검색하여 의존성 주입 처리
@Resource를 이용하면 객체의 이름을 이용하여 의존성 주입 처리
[참고] 파라미터에 VO 객체 이용하여 View Page의 input 태그 내의 정보를 가져 올수 있다-> input태그의 name과 VO 객체의 필드 명과 동일 해야함