获得spring初始化的bean和ServletContext

本文对比了两种在Web应用中获取Spring Bean的方法:第一种使用FileSystemXmlApplicationContext重新加载配置文件,这种方式较慢;第二种通过ContextLoader获取当前Web应用上下文中的Bean,这种方式更快且直接复用已初始化的Bean。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一种方法 速度慢,因为获取的bean并不是web启动时spring已经初始化的bean,而是通过 ApplicationContext applicationContext = new FileSystemXmlApplicationContext( new String[] { aAC , aDC})又重新初始化了一次获取的bean,获取bean慢是因为时间主要花在初始化上了,而且这样取出来的bean与web启动时spring已经初始化的bean是两个东西

<%@page import="org.springframework.context.ApplicationContext"%>  
<%@page import="org.springframework.context.support.FileSystemXmlApplicationContext"%>  
 <% 
 

  ApplicationContext applicationContext = new FileSystemXmlApplicationContext(request.getSession().getServletContext().getRealPath("") + "/WEB-INF/applicationContext.xml");
  NewsManager nm=(NewsManager)applicationContext.getBean("newsManager");
%>

第二种方法 速度快,它则正正的是获取了web启动时spring已经初始化的bean

<%@page import="org.springframework.web.context.WebApplicationContext"%>  
<%@page import="org.springframework.web.context.ContextLoader"%>  
 <% 

 WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext(); 
  NewsManager nm=(NewsManager)wac.getBean("newsManager");
%>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值