2012-02-14 6 views
0

У меня есть класс, как показано ниже:весной рамках джерси REST

@Path("/myrequest") 
@Scope("request") 
@Component 
public class MyRESTCode implements IServicedResource<T> { 
@Inject 
private IMyService serviceImpl; 

@Override 
public void setServiceImpl(IMyService impl) { 
    serviceImpl = impl; 
} 
} 

@Path("/users") 
@POST 
@Consumes ({MediaType.APPLICATION_JSON}) 
@Produces ({MediaType.APPLICATION_JSON}) 
public Response mymethod(Object obj) throws Exception { 
     serviceImpl.callme(obj); 
     return Response.noContent().build(); 
} 

Теперь эта реализация метода CallME существует в каком-то другом классе (MyOtherClass.java).

Может ли кто-нибудь сказать мне, как mymethod вызывает метод callme в MyOtherClass.java, когда/POST-запрос пользователя сделан ???

Также, кто вызывает метод setServiceImpl &, как он устанавливается &, когда он вызван?

Спасибо!

ответ

0

Вы должны быть с пружинным applicationContext.xml, который должен выглядеть примерно так

<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns: xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:aop="http://www.springframework.org/schema/aop" 
     xmlns:tx="http://www.springframework.org/schema/tx" 
     xmlns:context="http://www.springframework.org/schema/context" 
     xsi:schemaLocation=" 
      http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 
      http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd 
      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd 
      http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> 

     <context:component-scan base-package="test.example"/> 
     <context:annotation-config/> 

</beans> 

В этом XML, если вы заметили, что базовый пакет должен быть определен как пакет, где ваш класс контроллера (в вашем случае MyRESTCode.java). Spring будет искать классы, аннотированные как @Component, и настраивает их по пути, указанному @Path

Когда вы нажимаете на сообщение с JSON в теле на URL ..../myrequest/users, метод callme вызывается, что в свою очередь вызывает ваш метод обслуживания.

@ Вводная аннотация указывает весне, что зависимость IMyService должна быть введена в переменную serviceImpl через метод set SetServiceImpl.

Надеюсь, это поможет.

Смежные вопросы