예제 3-9는 SearchEngine의 구현체인 AnnotatedSearchEngine 클래스를 보여준다. 예제에서 볼 수 있듯이 @Service("engine")과 @Autowired 애너테이션을 사용하고 있다. 스프링 프레임워크는 @Service 애너테이션처럼 오직 마커marker 또는 스테레오타입stereotype인 여러 애너테이션(표 3-2 참고)을 지원한다. 이 애너테이션은 값(여기서는 "engine"으로, 컨테이너에서 id가 "engine"인 빈을 생성하고 해당 빈은 AnnotatedSearchEngine 클래스를 가리킨다는 의미다)을 가질 수 있다. 이는 XML 파일에 다음 태그를 두는 것과 같다.
<bean id="engine"
class="com.apress.isf.spring.annotated.service.AnnotatedSearchEngine" />
또한 @Autowired 애너테이션을 사용했다. 이 애너테이션은 스프링 컨테이너가 실제로 인스턴스를 생성하여 선언된 변수에 대입하도록 알린다. 이는 다음 설정과 같은 기능을 한다.
<property name="documentDAO" ref="documentDAO" />
결과적으로 AnnotatedSearchEngine 클래스는 다음 설정을 모두 포함하고 있는 것과 같다.
<bean id="engine"
class="com.apress.isf.spring.annotated.service.AnnotatedSearchEngine">
<property name="documentDAO" ref="documentDAO" />
</bean>