ezsnote

스프링 스테레오 타입... 어노테이션 , annotation !!!!

IT/스프링

스프링 스테레오 타입... 어노테이션 , annotation !!!!

iezs 2012. 3. 21. 18:38




이건.. 아직 100% 이해했다고 할 수 없는 내용이라 다른분들의 정의를 한번 찾아 봤다.


그중 몇가지 이다.



from  http://bearcho.tistory.com/93 

스테레오타입 어노테이션

클래스에 붙여서 해당 클래스가 컴포넌트 스캐닝의 대상이고, 스프링에 의해서 관리될 것임을 표시한다. 즉, <beans> XML 설정 파일에서 <bean>으로 선언한 것과 같은 효과를 낸다.

@Component 
메타 어노테이션. 다른 모든 스프링 스테레오타입 어노테이션 및 커스텀 Qualifier 어노테이션의 부모 어노테이션.

@Service
상태없는 서비스 컴포넌트.

@Repository

저장소 컴포넌트(DAO 등).

@Aspect
@AspectJ의 어스펙트.

@Controller
Spring MVC 컨트롤러. 






from  http://charmpa.egloos.com/2894427 

@Component
기본 스테레오타입
이 애노테이션을 붙인 클래스는 스프링 빈이 된다.
빈의 기본 행위를 변경하지 않지만, 스피링 차기 버전에서 부가적인 의미를 부여할 것임

@Controller
스프링은 이 스테레오타입 붙은 클래스를 스프링 MVC 지원에서 컨트롤러로 사용한다.

@Repository
이 애노테이션을 가진 클래스는 저장소를 나타낸다.
(예를 들어, DAO 등)
자동 예외 변환을 해 줌

@Service
이 애노테이션은 애플리케이션에서 비즈니스 로직을 구현한 클래스에 붙인다.
빈의 기본 행위를 변경하지 않지만, 스피링 차기 버전에서 부가적인 의미를 부여할 것임 




스프링 3.0

from  http://www.mungchung.com/xe/spring/21205 

<context:component-scan class=".."/> (빈스캐너)을 통해서 자동으로 등록되는 빈을 만들려면

스테레오타입 어노테이션을 설정해주면 된다.

 

스테레오타입 어노테이션은 4가지가 있다.

 

01.jpg

 

 

 

@Component

특정 타입을 정하기 힘든 계층 분류일경우 이 어노테이션을 사용한다.

 

@Repository

데이터엑서스 계층 또는 리포지토리 클래스에 사용된다.

DataAccessException 자동변환과 같은 AOP의 적용 대상을 선정하기 위해서도 사용된다.

주로 DAO (Data Access Object)에서 사용됨

 

@Controller

프레젠테이션 계층의 MVC  컨트롤러에 사용된다.

 

@Service

서비스 계층의 클래스에서 사용

주로 BO(Business Object)에서 사용됨





백기선씨 옛날글...

그리고 주의 할 것!
@Component나 @Repository 애노테이션에 별도의 bean name을 지정하지 않았다면 bean의 이름을 사용하여 DI하기 위해 사용했었던 @Resource 애노테이션은 걷어내고 @Autowired로 바꿔주어야 합니다. 

-------------
추가..
이유는 Resource 는 by Name 이고, Autowired 는 by Type 입니다... 기본적으로 말이죠~ .. 그냥 기본일때;


2015-02-25 Component 어뇨테이션의 뒤에("") 로 이름을 정의하고 Resource 어노테이션으로 빈 이름만 (type 명아닌 변수명) 적으면 wired 된다.





from  http://translate.googleusercontent.com/translate_c?anno=2&hl=ko&rurl=translate.google.co.kr&sl=en&tl=ko&twu=1&u=http://stackoverflow.com/questions/2529781/how-do-you-use-stereotype-annotations-in-spring-2-5-x&usg=ALkJrhgQJAUu7hzmokza3p0sa0zks0nEbg 

  • @Repository - for DAO beans - allows you to throw DataAccessException when the data source is not available.

  • @Service - for business beans - are fairly simple beans that have some default retention policies set up.

  • @Controller - for servlets - allows you to set up page request mappings, etc.