1

この回答をモデルにした次のコードがあります。

public class DeployerServlet extends HttpServlet {
    @Resource
    Engine engine;

    public void init(ServletConfig config) throws ServletException {
        super.init(config);
        SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this, config.getServletContext());
    }

    // ...
}

しかし、サーブレットは正しくインスタンス化されていません。com.example.DeployerServlet/engineインスタンスを作成するとき、Tomcat はJNDI で名前を検索しようとしますが、例外が発生します。

SEVERE: Allocate exception for servlet Deploy Servlet
javax.naming.NameNotFoundException: Name com.example.DeployerServlet is not bound in this Context

では、Spring Bean をサーブレットに注入するための推奨される方法は何ですか?

4

2 に答える 2

1

@ResourceアノテーションはJavaEE要素です。リソースへの参照を宣言するために使用されます。@InjectSpring はand と同じように使用できますが@Autowired、この場合、サーブレット Container が最初に動作します。@Resourceに置き換えるだけ@Autowiredです。

于 2013-08-05T15:22:17.203 に答える