-
Spring AnnotationSpring 2020. 1. 22. 18:02
key=value 형태의 데이터를 등록하고 사용할 때는 java.util.Properties 라는 컬렉션을 사용하며,<props> 엘리먼트 사용
<property name="">
<props>
<prop key="고길동"> 서울시 </prop>
</props>
</property>
어노테이션 설정을 추가하기 위해선 네임스페이스에서 Context 추가 후 .
<context:component-scan base-package = ""> 엘리먼트를 정의해야 한다.
그렇게하면 스프링 컨테이너는 클래스 패스에 있는 클래스들을 스캔 @Component가 설정된 클래스 들을 자동으로 객체 생성.
어노테이션 또한 기본 생성자가 당연히 필요하고, bean id = "" 처럼 @Component(id)를 해야 클라이언트가 스프링 컨테이너에게 요청할수 있겠지.
만약 id나 name 속성을 지정하지 않았다면? 스프링 컨테이너가 자동으로 이름을 설정.
이름은 클래스 이름의 첫글자를 소문자로 변경하기만 하면 된다.
@Autowired : 대부분 메머변수 위에 선언하여 사용. 스프링 컨테이너가 Autowired를 확인하는 순간 해당 변수의 타입을 체크 , 그타입의 객체가 메모리에 존재하는지 확인 후에 , 그 객체를 변수에 주입한다.
@Qualifier : 같은 타입의 객체가 두 개 이상일때, 지정자로 사용.
@Autowired
@Qualifier("객체의 이름") 이런식으로 객체의 이름을 넣어준다. 여기서 객체의 이름이란 @Component("여기 이름")
@Resource : 변수의 타입을 기준으로 의존성 주입처리를 한 Autowired와 다르게, 객체의 이름을 이용하여 의존성 주입을 처리.
@Resource(name="apple") 식으로 Component 안에 있는 이름을 사용해서 해줌.
@Inject또한 이름을 기반으로 의존성 주입 처리.
@Component 를 상속하여 세 개의 어노테이션을 추가로 제공
@Service :비즈니스 로직을 처리하는 클래스
@Controller : 사용자 요청을 제어하는 클래스
@Repository : DB 연동을 처리하는DAO 클래스
'Spring' 카테고리의 다른 글
AOP(execution) (0) 2020.01.27 AOP (0) 2020.01.27 Spring Setter (0) 2020.01.22 Spring Bean (0) 2020.01.22 Spring Container (0) 2020.01.21