어노테이션 기반 설정
1. Context 네임스페이스 추가
스프링 설정 파일의 루트 엘리먼트인 <beans>에 Context 관련 네임스페이스와 스키마 문서의 위치를 등록
->자바EE로 해 놓고 있으면 콘솔창 위쪽으로 namespace라는 탭이 있다. 그거 누르면 체크체크 할 수 있다.
이렇게 한다.
...ㅋㅋㅋㅋㅋㅋㅋ
2.컴포넌트 스캔(component-scan) 설정
스프링 설정파일에 애플리케이션에서 사용할 객체들을 <bean>등록하지 않고 자동으로 생성하려면 <context:component-scan/>이라는 엘리먼트를 정의해야한다. 이 설정을 추가하면 스프링 컨테이너는 클래스 패스에 있는 클래스들을 스캔하여 @Component가 설정된 클래스들을 자동으로 객체생성한다.
<context:component-scan base-package="패키지명"></context:component-scan>
<context:component-scan/>설정을 제외한 나머지 <bean> 설정은 삭제하거나 주석으로 처리한다.
중요한 것은 <context:component-scan>엘리먼트의 base-package 속성인데, 만약 속성값을 "com.ciel.animo"형태로 지정할 경우 com.ciel.animo 패키지로 시작하는 모든 패키지를 스캔 대상에 포함한다.
3. @Component
클래스 위에 @Component를 클래스 선언부 위에 설정한다.
@Component
public class SamsungTV implements TV{
.....
}
=><bean class="패키지.SamsungTV"></bean>
잊지 말 것
-해당 클래스에 기본생성자가 있어야만 객체 생성 가능
-컨테이너가 생성한 객체를 요청하기 위해서는 id나 name이 반드시 설정 되어 있어야 함
따라서 다음과 같이 설정이 필요하다.
@Component("tv")
public class SamsungTV implements TV{
....
}
=><bean id="tv" class="패키지.SamsungTV"></bean>
만약 id나 name 속성을 미지정하면 어떻게 되나여?
-> 컨테이너가 자동으로 이름을 설정해준다. 이때 이름 규칙은 클래스 이름의 첫 글자를 소문자로 변경한 것이다.
'건승하고있어요 > Spring framework' 카테고리의 다른 글
[Spring] 스프링2일차 - 스프링AOP (2) | 2018.02.09 |
---|---|
[Spring] 스프링1일차 - 의존성 주입 어노테이션 (0) | 2018.02.09 |
[Spring] 스프링1일차 - 컬렉션(Collection) 객체 설정 (0) | 2018.02.08 |
[Spring] 스프링1일차 - 의존성관리/Setter인젝션(Setter Injection) (0) | 2018.02.08 |
[Spring] 스프링1일차 - 의존성관리/생성자 인젝션(Constructor Injection) (2) | 2018.02.08 |