-3
Java EEで安心なAPIデザインを開発しようとしていますが、私はRestfulサービスのさまざまな実装モデルに直面しています。Java EEのRESTfulデザインパターン
最初のモデルは、データを取得するために、残りのクラスで@EJBを使用しています、あなたは気づいたかもしれませんが
@Stateless
@Path("entities.customer")
public class CustomerFacadeREST extends AbstractFacade<Customer> {
@PersistenceContext(unitName = "CustomerDBPU")
private EntityManager em;
public CustomerFacadeREST() {
super(Customer.class);
}
@GET
@Path("{id}")
@Produces({"application/xml", "application/json"})
public Customer find(@PathParam("id") Integer id) {
return super.find(id);
}
....
}
:
@Path("/users")
public class UserResource
{
@EJB
UsersFacade em;
@GET
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
@Path("{name}")
public User getUser(@PathParam("name") String _name)
{
UsersBean u = em.findByName(_name);
if (u == null)
{
throw new WebApplicationException(404);
}
return User.fromEntity(u);
}
....
}
とNetBeansによって生成されたもう一つは、このようなものですここでの違いは、Restクラスの実装がSLJB(Stateless Java Bean)であり、@PersistenceContextを使用してJPAのインスタンスを取得し、AbstractFacadeを継承するという点です。
しかし、最初のメソッドでは@EJBを使用してBeanのインスタンスを取得します。
どちらをお好みですか?なぜ?
これはRESTとはまったく無関係です。あなたの質問は '@ EJB'と' @ PersistenceContext'です。あなたの質問を編集して、質問を策定するのに必要なものに減らしてください。 –
@Lutz Horn、私はこれを知りたがっています。これは、RestベースのAPIを実装する方が良い方法です。なぜ? – user335870
それは問題ではありません。 RESTは、さまざまな配線依存関係を選択することではありません。どちらのクラスもRESTに関連するすべてのもので同じです: –