您的位置:首页 > 编程语言 > Java开发

servlet 使用spring管理bean

2013-03-07 16:42 411 查看
servlet 使用spring管理bean

要serlvet使用注解的形式去注入bean,那么如何才能将spring管理的bean注入到servlet中。原本spring管理的bean和servlet不在一个上下文环境中是无法相互注入的。

解决办法创建一个AbstractServlet 抽象类,让你的所有servlet继承于此类

Java代码



import java.io.IOException;

import javax.servlet.ServletConfig;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.springframework.web.context.support.SpringBeanAutowiringSupport;

/**

* Servlet implementation class AbstractServlet

*/

public class AbstractServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

/**

* @see HttpServlet#HttpServlet()

*/

public AbstractServlet() {

super();

// TODO Auto-generated constructor stub

}

public void init(ServletConfig config) throws ServletException {

SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this,

config.getServletContext());

}

/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse

* response)

*/

protected void doGet(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

}

/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse

* response)

*/

protected void doPost(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

doGet(request, response);

}

}

关键在于SpringBeanAutowiringSupport.processBInjectionasedOnServletContext(this,

Java代码



config.getServletContext());

Java代码



通过使用spring提供的支持可以将当前的servlet上下文环境添加到spring管理的上下文环境中。

Java代码



当然还有其他一些方法就不在这赘述了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: