2011-12-14 52 views
2

我已閱讀了JAX-RS上的一些內容,並想知道通常放置註釋的位置?我應該將它們添加到現有的EJB上嗎?還是應該創建新的EJB?如果是,我應該使用在「常規」EJB上使用的接口(如果有的話)?通常應用JAX-RS註釋的地方在哪裏?

回答

2

正如你發現的那樣,有多種方法來模擬它們。我不確定整體最佳實踐,但我個人選擇使用通過EJB bean注入的CDI託管bean。

所以,這有點像你的第二個選擇,做新的bean,但不要讓它們成爲EJB。

例如

@Produces("application/xml") 
@Path("xml") 
@javax.enterprise.context.RequestScoped // CDI one, not JSF one 
public class MyResource { 

    @Context 
    private SecurityContext securityContext; 

    @Inject 
    private MyDAO myDAO; // MyDAO = EJB Bean 

    @GET 
    @Path("some/path") 
    public Foo getFoo() { 
     return myDAO.getFooByUserName(securityContext.getUserPrincipal().getName()); 
    } 
} 

它也取決於是否有方法只能用於JAX-RS。上面的例子沒有顯示這一點,但我發現它經常爬起來,當它分開豆類只是一個整潔。