一个和spring整合的依赖注入的servlet,子类可自动装配依赖Bean
来源:互联网 发布:成都理工大学网络教育 编辑:程序博客网 时间:2024/06/06 08:59
工作中,有时候可能会直接使用到servlet,这样,和spring整合起来,就有点麻烦,还要写个spring的代理,比较麻烦,下面这个servlet,就不需要了。如果继承了这个servlet,那么,他的子类就会具有自动装配的功能了。代码如下:
import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.beans.factory.config.AutowireCapableBeanFactory;import org.springframework.web.context.WebApplicationContext;import org.springframework.web.context.support.WebApplicationContextUtils;public abstract class AutowiredHttpServlet extends HttpServlet {private static final long serialVersionUID = -2000909174467653847L;public void init() throws ServletException {super.init();WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(getServletContext());AutowireCapableBeanFactory factory = ctx.getAutowireCapableBeanFactory();factory.autowireBean(this);}public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{servlet(request, response);}public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{servlet(request, response);}/** * 子类实现该方法,进行Servlet Post和Get请求服务。 * @param request HttpServletRequest实例 * @param response HttpServletResponse实例 * @throws IOException * @throws ServletException * @author yinlei * date 2011-8-9 下午7:15:41 */public abstract void servlet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException;/** * 直接输出json。 */public void renderJson(HttpServletResponse response, String json) {response(response, json, "application/json;charset=UTF-8");}/** * 直接输出纯HTML。 */public void renderHtml(HttpServletResponse response, String text) {response(response, text, "text/html;charset=UTF-8");}/** * 直接输出纯字符串。 */public void renderText(HttpServletResponse response, String text) {response(response, text, "text/plain;charset=UTF-8");}public void response(HttpServletResponse response, String text, String contentType) {try {response.setContentType(contentType);response.getWriter().write(text);} catch (IOException e) {}}}
这样以来,他的子类,可以直接像struts2和spring mvc一样,直接将service bean都注入进来了。例如:
public class DemandServlet extends AutowiredHttpServlet {private static final long serialVersionUID = 1L;private static final Logger logger = LoggerFactory.getLogger(DemandServlet.class);@Autowiredprivate SupplyDemandService supplyDemandService;@Autowiredprivate UserMemberService userMemberService;public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {servlet(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {servlet(request, response);}@Overridepublic void servlet(HttpServletRequest request, HttpServletResponse response)throws IOException, ServletException {String type = request.getParameter("type");String userId = request.getParameter("userId");if (type == null || type.equals("init")) {// 去发布,需要验证用户的信息//去发布求购,验证用户信息是否完整Member member = userMemberService.get(userId);if (member == null || member.getSopenid() == null) {// 验证没有通过,让用户完善信息request.getRequestDispatcher("weixin/binding.jsp").forward(request, response);} else {// 已经验证通过,跳转到发布页面request.getRequestDispatcher("weixin/demand.jsp").forward(request, response);}} else if (type.equals("publish")) {// 发布//绑定数据SupplyDemandInf demand = binder(request);supplyDemandService.saveOrUpdate(demand);request.getRequestDispatcher("weixin/demandPublishSuccess.jsp").forward(request, response);}}}
1 0
- 一个和spring整合的依赖注入的servlet,子类可自动装配依赖Bean
- 一个和spring整合的依赖注入的servlet,子类可自动装配依赖Bean
- 基于Spring4的Bean的装配和依赖注入
- spring、IoC控制反转和DI依赖注入入门、基于XML的Bean装配、基于注解的Bean装配
- 用spring的注解建立bean与bean之间的关系组件装配及自动注入依赖对象
- Spring - 装配Bean:即依赖注入
- Spring - 装配Bean:即依赖注入
- Spring4装配bean和依赖注入
- Spring学习之旅(一) 依赖注入(DI)与Spring Bean的装配
- java spring Bean Autowiring 自动依赖装配
- 【JavaWeb-23】spring、IoC控制反转和DI依赖注入入门、基于XML的Bean装配、基于注解的Bean装配
- spring依赖对象的自动装配
- Spring依赖注入 — 属性自动装配
- Spring依赖注入 — 属性自动装配
- Spring DI依赖注入,自动装配
- spring的管理bean和依赖注入的原理剖析
- Spring中bean的依赖注入解析
- spring源码解读 Bean的依赖注入
- svn命令总结
- poj2148(二维背包)
- 烟花易冷,人事易分
- 顺序表 C++模板实现
- 《Ext JS 4.2实战》目录
- 一个和spring整合的依赖注入的servlet,子类可自动装配依赖Bean
- VC++中数值与字符串相互转化(总结)
- Sweet Snippet系列 之 元素删除
- UIButton 设置title位置
- HDU 2191 珍惜现在,感恩生活(多重背包)
- kmp的next数组的运用(求字符串的最小循环节)
- tomcat内存溢出
- 使用Java语言编写的Demo:上传文件至百度网盘(Baidu PCS)
- 计数排序详解