如何在servlet取得spring beans

 我来答
esllovexq
2016-11-11 · TA获得超过244个赞
知道小有建树答主
回答量:526
采纳率:50%
帮助的人:126万
展开全部
都用spring了为何还要用servlet,用Struts2不好吗。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我是小雄杰里米
2016-08-23 · TA获得超过242个赞
知道小有建树答主
回答量:468
采纳率:42%
帮助的人:147万
展开全部
使用webapplicationcontextutils 获取到applicationcontext 后,getbean 就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
青鸟中关村专家
2017-03-22 · 知道合伙人软件行家
青鸟中关村专家
知道合伙人软件行家
采纳数:1734 获赞数:8440
就职于北大青鸟中关村,自2004年踏入北大青鸟这个行业,已经有11年工作经验和8年的培训经验,寓教于乐

向TA提问 私信TA
展开全部
获取ServletContext对象,比如你可以通过重写Servlet的初始化方法init(ServletConfig config), 然后从config中getServletContxt;也可以在处理请求的时候,从Request中getSession().getServletContext()
根据ServletContext,利用Spring的工具类:WebApplicationContextUtils
执行WebApplicationContextUtils.getWebApplicationContext(ServletContext)
拿到了ApplicationContext之后,即拿到了Spring的Bean容器,就可以通过容器获取Bean了,比如现在有一个Bean实现了IHello接口,那么可以通过以下代码获取这个IHello的bean实例: IHello hello = applicationContext.getBean(IHello.class);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5e7d60f
2017-05-02 · TA获得超过2.6万个赞
知道大有可为答主
回答量:9522
采纳率:91%
帮助的人:1541万
展开全部
在应用中一般普通的JavaPojo都是由spring来管理的,所以使用autowire注解来进行注入不会产生问题,但是有两个东西是例外的,一个是 Filter,一个是Servlet,这两样东西都是由Servlet容器来维护管理的,所以如果想和其他的Bean一样使用Autowire来注入的 话,是需要做一些额外的功夫的。
在servlet取得spring beans的方法:
<span style="font-size:24px;">package spring.servlets;

import java.io.IOException;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

import spring.beans.User;
import spring.services.UserServices;

@WebServlet("/UserServlet")
public class UserServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

private UserServices userServices;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取ServletContext 再获取 WebApplicationContextUtils
ServletContext servletContext = this.getServletContext();
WebApplicationContext context =
WebApplicationContextUtils.getWebApplicationContext(servletContext);
userServices = (UserServices) context.getBean("userServices");

System.out.println("--------------------------");
User u = userServices.getUser();
System.out.println(u.getUserName());
System.out.println(u.getPassword());
System.out.println("--------------------------");
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}
</span>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
code_thinker
2017-05-12 · TA获得超过994个赞
知道答主
回答量:63
采纳率:0%
帮助的人:33.2万
展开全部
servlet类中调用如下方法

ApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(getServletContext());

Object beanName= context.getBean("beanId");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式