1.ComponentScan 이란??
1-1.ComponentScan이란?
base-package로 설정된 경로 하위에 특정 어노테이션을 가지고 있는 클래스를 이용하여 bean으로 등록한다.
@Component 어노테이션이 작성된 클래스를 bean으로 인식하여 bean으로 만들게 되며, 특수목적에 따라 세부기능을 제공하는
@Controller, @Service, @Repository, @Configuration 등을 인식한다.
1-2 그럼 어떠한 클래스를 bean으로 인식하는가?
@Component, @Controller, @Service, @Repository, @Configuration가 있는 클래스
2. Spring에서 DAO의 역할
Spring에서 DAO는 interface로 생성한다. 그 이유는 interface로 생성 한 후 DAO에 메소드를 정의하면 개발자들이 DAO를 상속받아 구현할 때 DAO에 정의된 메소드만 사용가능하며 행위의 강제화를 시킬 수 있기때문이다. 이렇게하면 유지보수도 쉽기 때문이다
DAOImpl 에서는 class로 만들며 DAO를 상속한 후 오버로딩을 해준다. 그리고 class위에 @Component 를 선언해주면 Bean으로 인식
2-1 각계층을 표현하는 어노테이션
@Controller,@Service,@Repository와 동일한 기능을 가지지만 각 계층을 표현하는 어노테이션은 특정용도에맞는 부가 혜택이 있으므로 계층별로 구분하여 사용하는것이 좋다
•
@Component : 스프링에서 관리되는 객체임을 표시하기위해 사용되는 가장 기본적이 어노테이션이다.
•
@Controller : WebMvc에서 사용되는 어노테이션으로 @RequestMapping 어노테이션이 작성되는 클래스에서만 사용가능
•
@Service : 비지니스 로직이 작성도니 클래스에서 사용된다, 추가적이 ㄴ기능은 없지만 향 후 제공할 가능성ㅇ ㅣ있으니 계층을 명시해서 사용한다.
•
@Repository : 플랫폼 별 예외를 포차하여 PersistenceExceptionTranslatePostProcessor가 DataAccessException으로 변환해서 발생시킨다.*/
bean의 이름설정방법 value="memberDAO" or value를 제거해도 사용가능
스프링 컨테이너가 스캐닝 기능을 이용하여 해당 클래스르르 bean으로 등록할 수 있는 어노테이션을 설정한다.
•
value 속성을 사용하여 bean의 id를 설정할 수 있으며 value는 생략가능하다
•
이름 (id)를 설정하지 않으면 class의 앞글자를 소문자로하여 bean을 생성
예시)
3. xml파일 구분방법
•
xml파일은 java파일이 아니기때문에 package라는 단위를 쓰지않고 폴더로 구분 그래서 /로 구분한다.
•
xml파일에서 exclude적용법