Jee6が実行時の依存性注入をサポートしているかどうか知りたい...
私はおそらく複数の概念を含んでいるので、私が望むアーキテクチャを説明しようとしています
- インターフェイスを含む jar
public interface Hello { public String say(); }
インターフェイスを参照する戦争(したがって、インターフェイス Hello jar は WEB-INF/lib にパックされています)
@WebServlet("/HelloServlet")
public class HelloServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Inject @Any
Instance<Hello> hello;
/**
* @see HttpServlet#HttpServlet()
*/
public HelloServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println(hello.iterator().next().say());
}
わかりましたので、どんな問題でもそれを達成できます
基本的に、そのインターフェースに複数のプロデューサーが必要です
@Named
public class HelloImpl implements Hello {
@Override
public String say() {
// TODO Auto-generated method stub
return "TEST";
}
}
とても簡単ですが、これをモジュール化可能にする方法がわかりません (実行時に実装を追加または削除できます):
実装をwarファイルに入れると、別のコンテキストで実行されますか?
jarファイルに入れた場合、それを正しく使用するには、最初の戦争WEB-INFに入れる必要がありますか? 実行中にjarを動的に追加または削除できますか、いいえ...またははい、クラスローダーとjarファイルのアンロードにあまり慣れていません
最良の質問、それがすべて実行できる場合、jar の aise イベントを web-inf/lib に追加および/または削除する方法がある場合は?
私はOSGIに行く準備ができていないとしましょうが、私の問題はその技術のいくつかの機能によってカバーされるかもしれません.私はできればjee6にとどまりたい.
ありがとう