2014-08-28 3 views
2

저는 을 공부했습니다. Spring MVC 4 그리고 Spring에는 더 빨리 개발할 몇 가지 주석이 있다는 것을 알고 있습니다. This question and answer은 @Component, @Service, @Repository 및 @Controller 사이의 관계를 잘 설명합니다. 내 질문은 :다른 프로젝트에서 spring @service를 호출하십시오.

  1. @Service 클래스는 일반적인 WSDL 서비스로 다른 컴퓨터에서 호출 할 수 있습니까? 예를 들어, 서비스의 클라이언트 인 독립 실행 형 응용 프로그램에서 가져옵니다.

  2. @ 어노테이션으로 클래스 사용을 표시 하시겠습니까?

감사

답변

2

주석 @Service가 @Component 주석의 특별 버전이고 그것의 목적은 구현에 대한 원격 액세스를 제공하지 않습니다.

문서에서 언급했듯이 @Service 주석은 클래스 경로 검색 중에 클래스를 자동으로 감지하고 (JavaDoc 참조) 일부 도구로 처리하도록 도와줍니다. Spring's forum에 대한 설명도 확인하십시오.

+0

@service와 @webservice의 주석을 둘 다 넣을 수 있습니까? – Jessai

+0

잘 모르겠지만 @Service 주석을 사용하여 서비스 구현에 주석을 달고 엔드 포인트 구현에 삽입하도록 조언합니다 (http://docs.spring.io/spring/docs/current/spring-framework- reference/html/remoting.html). 이러한 방식으로 다양한 원격 기술을 사용하여 서비스 구현을 노출 할 수 있습니다. –

1

당신이

1

here을 정의 봄 @Service와 javax의 @WebService을 혼동하지 마십시오 외부 세계에 노출하는 @WebService로 클래스에 주석을 필요 @Service 나는 그것을 사용하여 호출 할 수 있다고 생각하지 않습니다 . 둘 다 서비스이라고합니다. @Service의 목적은 간단하다 :

이 주석이 클래스 경로 검색을 통해 자동 감지 할 구현 클래스를 허용, @Component의 전문화 역할을합니다. @WebService 이후 그래서

@Service 봄의 내부 용이며, WSDL을 (외부 액세스)입니다. 다른 컴퓨터에서 "서비스"에 액세스하려면 @WebService을 작성하거나 @RequestMappingSpringMVC과 함께 사용해야합니다.

3

외부에서 @Service로 주석 처리 된 클래스의 메서드를 호출 할 수는 없지만 클래스에 @Service (일반적으로 서비스 계층이라고 함)가있는 레이어의 맨 위에 facade라고하는 다른 레이어를 추가하는 것이 일반적입니다.). 이 Facade를 사용하면 REST, SOAP 등 다양한 방식으로 서비스를 노출 할 수 있습니다.

+0

이제 기능을 분리하기 위해 별도의 레이어가 필요하다는 것이 확실합니다. 감사 – Jessai

관련 문제