servlet 使用spring管理bean
2015-07-23 22:51
507 查看
今天在项目中遇到一个问题,就是在servlet无法注入spring管理的对象。后来在网上查了下,原来是spring管理的bean和servlet不在一个上下文环境。导致注入失败。
那到底有没有办法解决这样的问题呢?我也查了下,还是有好多种方式的。但是个人觉得下面的一种方式可能更为优雅一点。
首先,创建一个AbstractServlet 抽象类,让你的所有servlet继承于此类。如下:
接下来就是让你的servlet继承AbstractServlet就可以了,之后你就可以再的sevrvelt中使用@AutoWired注解了。
注意:此时只能使用@AutoWired注解,@Resource是无效的。因为是用这个来处理的。
SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this,config.getServletContext());
那到底有没有办法解决这样的问题呢?我也查了下,还是有好多种方式的。但是个人觉得下面的一种方式可能更为优雅一点。
首先,创建一个AbstractServlet 抽象类,让你的所有servlet继承于此类。如下:
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); } }
接下来就是让你的servlet继承AbstractServlet就可以了,之后你就可以再的sevrvelt中使用@AutoWired注解了。
注意:此时只能使用@AutoWired注解,@Resource是无效的。因为是用这个来处理的。
SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this,config.getServletContext());
相关文章推荐
- Spring JdbcTemplate
- eclipse调试技巧
- java多线程编程(二)
- Java多线程总结
- 转: JAVA_SWT常用事件, 和方法
- 获取Java文件路径
- thinking in java ch2 notes
- java 参数 "..." 使用介绍
- cmd运行java添加其依赖的jar
- Android 如何在Eclipse中查看Android API源码 及 support包源码
- java集合比较
- maven+springMVC+mybatis+junit详细搭建过程
- eclipse中SVN分支合并到主干
- spring[2]
- 工程下有一个红叉,但是可以照常运行
- eclipse git 插件集成与本地使用(傻瓜教程 一)
- JAVA基础之IO流
- Java容器类
- java中Class.forName与new
- Java注解(一)