2

私はWEBアプリケーションを持っています。POJO から Spring アプリケーション内のクラス (サービス) を呼び出すように依頼されました。

サービスは、Web サービスまたは REST として公開されていません。私はただのjarとしてのアプリケーションでした。これをビルドパスに追加してサービスを呼び出す必要がありました。

効きますか??

ひどく混乱しています!

4

2 に答える 2

2

ここにはあまり詳細はありませんが、これは Spring MVC を使用する Spring アプリケーションであると想定しています。その場合、サービスをクラスとして呼び出せない理由はありません。

これが、JUnit を使用して Spring で @Controller クラスをテストできる理由です。これは文字通り単なる POJO です。

これを行う方法の例として、以下のリンクを参照してください。

@PathVariable を使用して Spring MVC コントローラーを単体テストする方法は?

于 2012-10-22T12:40:39.400 に答える
1

pojo が Spring Bean の場合、次のようにサービスを自動配線できます。

public class YourPojo {
   @Autowired
   YourService yourService; 
}

Pojo に @Component でアノテーションを付けるか、ApplicationContext.xml で宣言して、Pojo を Spring Bean にすることを検討してください。

そうでない場合は、リクエスト オブジェクトがあれば、次のようにサービスを取得します。

ServletContext sc = req.getSession().getServletContext();
ApplicationContext ac = WebApplicationContextUtils.getWebApplicationContext(sc);
YourService yourService = ac.getBean("yourService");
于 2012-10-22T12:40:06.303 に答える