3

私は JSF のファンではありません。Spring MVC は私にとって非常に理にかなっており、過去に使用したことがあります。

それについて私に話してくれますか、またはそれを JEE6 にうまく統合するためのヒントを提供して、CDI と共有して問題を解決できますか。

MVC のためだけにアプリケーション コンテキストを使用してもかまいませんが、MVC コントローラーで @Inject または @EJB を使用すると、何がうまくいかないのでしょうか?

Seam3 は面白そうですが、製品化の準備はできていますか?

4

3 に答える 3

3

もう1つのオプションは、JAX-RSをコントローラーとして使用し(Jersey実装では、制御をJSPに転送できます)、ビューにJSPを使用することです。このようにして、SpringとJavaEEの統合について心配する必要はありません。

たとえば、HomeControllerを使用できます。

@Path("/")
@Stateless
public class HomeController {

    @Context
    HttpRequest request; // Injects request object so you set attributes.

    @EJB // Inject your EJB
    EmployeeServiceLocal employeeService;

    @GET
    public Viewable getHomePage() {

        Employee employee = employeeService.getEmployee();
        request.setAttribute("employee", employee);
        return new Viewable("/home.jsp", null);
    }
}

これにより、home.jspというJSPに移動し、リクエストオブジェクトを介してJSPでデータを取得できるようになります。JAX-RSはRESTfulWebサービスに使用されるため、以下のコードで何が起こっているかを理解するには、RESTを理解する必要があることに注意してください。

于 2010-11-08T15:08:21.250 に答える
2

それについて私に話してくれますか、それとも JEE6 にうまく統合するためのヒントを提供して、CDI と共有して問題を解決できますか

たぶん私は間違っているかもしれませんが、CDI と Spring の DI 部分のどちらかを選択する必要があると思います。そのうちの 1 つは、魔法が発生するためのオブジェクトの作成を担当する必要があります。したがって、Spring MVC で CDI を使用する場合は、コントローラーを CDI Bean にする必要があります。JavaOne 2010より : Java EE 6 パネル「今何をしようか?」注意事項

SpringMVC と CDI? => 技術的に可能: CDI Bean をコントローラーとして使用します (しかし、Reza は、SpringMVC が作業を行うのに十分な需要がないと言っています)。

また、 Java EE 6 (CDI / EJB 3.1) XOR Spring Core Reloadedを確認することを強くお勧めします。

MVC のためだけにアプリケーション コンテキストを使用してもかまいませんが、MVC コントローラーで @Inject または @EJB を使用すると、何がうまくいかないのでしょうか?

Spring は、JSR-330 からの「at inject」の組み込みサポートを提供し、@EJB にいくつかの魔法も提供します。探しているものがそれだけなら、Spring が機能します。しかし、それは CDI (JSR-299) が提供するものではありません。

于 2010-10-25T23:50:30.717 に答える
1

Spring からの CDI の使用では、すべての Bean を CDI BeanManager から Spring アプリケーション コンテキストにインポートする BeanFactoryPostProcessor を使用して CDI-to-Spring ブリッジを構築する方法について説明します。

Pascal は、Spring DI と CDI のどちらかを選択する必要があると言っていますが、このアプローチではモジュールごとに選択できます。

典型的な WAR レイアウトでは、WEB-INF/lib に多数のサービス モジュールと持続性モジュールを使用する 1 つの Web モジュールがあります。CDI-to-Spring ブリッジを使用すると、WEB-INF/lib モジュールを CDI Bean アーカイブに変換できますが、Web モジュールはBean アーカイブではなく、Spring DI のみを使用します。

ブリッジは、JNDI を介して CDI BeanManager にアクセスし、CDI Bean ごとに Spring ファクトリー Bean を作成します。

私はあなたのユースケースのためにこのブリッジを正確に使用しています:Spring MVC WebフロントエンドとJava EE 6バックエンドの統合。

于 2011-06-07T21:25:53.380 に答える