제가 이해한 내용이 바탕이라서, 혹시 틀린게 있으면 한 수 알려주세요 !!!


XML 에 Beans 에 Component 하는 방식보다, 좀더 세분화 시켜서 등록 및 사용을 할 수 있게 해줍니다.

당연히 내용은 다르겠지만 비슷한 의미로 씨멘틱header, nav, footer 등으로 나누어서 사용하는 것과 비슷한 개념이라 생각됩니다.


@Component 스프링이 해당 클래스의 객체를 생성 할 수 있게 해줍니다.

하지만 다수의 클래스에서 사용되면 관리 및 파악이 어렵기 때문에 위에 처럼 세분화 시켜주기 때문에,

밑에 세개는 @Component 로 부터 상속 받아 사용됩니다.


@Repository 는 DB 쿼리를 수행하는 DAO에 사용됩니다.


@Service 는 실제 사용되는 메소드들이 사용되는 ~ServiceImpl 부분에서 사용됩니다.


@Controller 는 Controller 클래스에서 사용됩니다.


만약 @Repository 에 등록된 DAO 를 @Autowired 를 이용해서 사용(주입)할때, 복수의 DAO가 등록 된다면 오류가 발생합니다. 그때 @Qualifier 를 이용하여 구분 해줄 수 있습니다.


@Austowired 와 @Inject 어노테이션 모두 주입을 위한 어노태이션이지만, @Inject는 자바에서도 사용 되기 때문에 훨씬 범위가 넓습니다. 그래서 Spring 프로젝트를 진행중이시라면 @Autowired로도 충분할 것 같습니다.



※현재 공부 중인 내용을 정리 하는중이라서 절대 완벽할 수 없습니다. 혹시 보고 틀린 내용이 있으면 꼭 한 수 부탁드립니다 !



+ Recent posts