참고문헌
: 토비의 스프링
XML 태그
<bean> 과 <property>를 사용해서 빈 오브젝트를 설정한다.
이와 어플리케이션 컨텍스트에서 사용하는 포인트컷 등록을 구별하기 위해서
별도의 네임스페이스를 사용하여 aop 빈을 등록 해준다. (<bean>으로도 등록이 가능하다.)
이외에도 다양한 태그를 스프링에서 제공해준다.
어노테이션
: 어노테이션의 경우 xml을 사용하여 수동으로 빈을 관리하는 번거로움을 피할 수 있다.
: 하지만 빈 생성 및 관계를 하나의 파일에서 관리하기 어렵다.
: 어노테이션의 빈 아이디는 맨 앞이 소문자인 클래스 이름이다.
1. 스테레오타입 어노테이션의 종류
: @Repository - 데이터 액세스 계층
: @Service - 서비스 계층
: @ Controller - 컨트롤러 계층
: @ Component - 미분류, 기타
: 어노테이션을 분리하는 이유는 특정 계층에 부가기능을 부여해줄 수 있다.
스프링 코드
: @Configuration, @Bean
: @Configuration 에 @Component 어노테이션이 붙어있다.
: 기본 자바코드와는 다른 BeanDefinition을 반환해주는 메타정보라고 이해하는 것이 좋다.
: @Bean이 붙은 함수가 new 키워드로 매번 새로이 생성하는 객체를 반환한다고 생각할 수 있지만, @Configuration 을 통해 조작된 메소드로 싱글톤 객체를 반환한다.
: @Bean 메소드의 추가 설정정보가 없을 시 반환하는 객체가 싱글톤이기 때문이다.
의존관계
: 의존관계는 모든 빈이 만들어 진 후 후처리를 통해서 의존관계가 생성된다.
1. XML 단독
2. XML과 어노테이션 설정의 혼합
3. 애노테이션 단독