开发者社区> 黄威的世界> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

JSP获取spring 的容器ApplicationContext

简介:
+关注继续查看

Jsp 中如何获取spring的bean呢?

方式一:通过上下文

 

Html代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <%@ page language="java" contentType="text/html; charset=UTF-8"  
  3.     pageEncoding="UTF-8"%>  
  4. <%@page import="org.springframework.web.context.support.WebApplicationContextUtils"%>  
  5. <%@page import="org.springframework.context.ApplicationContext"%>  
  6. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  7. <html xmlns="http://www.w3.org/1999/xhtml">  
  8. <head>  
  9. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
  10. <title>Insert title here</title>  
  11. </head>  
  12. <body>  
  13. <%  
  14. ServletContext context = request.getSession().getServletContext();  
  15. ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(context);  
  16. Object <span style="font-size: 1em; line-height: 1.5;">supermarketDao</span><span style="font-size: 1em; line-height: 1.5;">= ctx.getBean("supermarketDao");</span>  
  17. System.out.println("jsp:"+<span style="font-size: 1em; line-height: 1.5;">supermarketDao</span><span style="font-size: 1em; line-height: 1.5;">);</span>  
  18. %>  
  19. </body>  
  20. </html>  

 问题:JSP页面中获取的bean与spring 容器中的bean是同一个吗?

 

是的

 

方式二:通过类路径加载bean文件,得到bean工厂

 

Html代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <%@page import="org.springframework.beans.factory.BeanFactory"%>  
  3. <%@page import="org.springframework.context.support.ClassPathXmlApplicationContext"%>  
  4. <%@ page language="java" contentType="text/html; charset=UTF-8"  
  5.     pageEncoding="UTF-8"%>  
  6. <%@page import="org.springframework.web.context.support.WebApplicationContextUtils"%>  
  7. <%@page import="org.springframework.context.ApplicationContext"%>  
  8. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  9. <html xmlns="http://www.w3.org/1999/xhtml">  
  10. <head>  
  11. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
  12. <title>Insert title here</title>  
  13. </head>  
  14. <body>  
  15. <%  
  16. ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext("beans.xml","user_beans.xml","goods_beans.xml","supermarket_beans.xml","aop.xml","upload_beans.xml");   
  17. BeanFactory factory = (BeanFactory) appContext;   
  18. Object obj=factory.getBean("supermarketDao");  
  19. System.out.println("jsp2:"+obj);  
  20.   
  21. %>  
  22. </body>  
  23. </html>  

  问题:JSP页面中获取的bean与spring 容器中的bean是同一个吗?

 

是的

 

总结:(1)通过WebApplicationContextUtils 获取bean是直接从spring容器中拿的;

(2)通过ClassPathXmlApplicationContext,实际上又解析了一遍xml,即又创建了一个新的spring容器,所有获取的bean与web上下文中是不同的。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Spring容器 IoC思想 DI实现
Spring容器 IoC思想 DI实现
0 0
Spring容器的事件监听机制(简单明了的介绍)
上一篇我们介绍了SpringFactoriesLoader。这一篇我接着来介绍一下Spring的另一个知识点,就是Spring容器的事件监听机制。
0 0
看了这一篇Spring容器Bean的生命周期,面试再也不用怕了
上一篇我们介绍了Spring IOC容器的启动过程以及bean的实例化过程,这一篇我们接着来学习另外一个知识点,就是Bean的生命周期,我们知道直接通过(new XX())来创建的实例,当这个实例没有被引用时就会被垃圾回收机制回收,但是通过IOC容器实例化的Bean的生命周期又是如何呢?
0 0
「推荐收藏!」【Spring源码探究】(一)MVC容器初始化🏅彻底让你明白运行原理和源码流程
「推荐收藏!」【Spring源码探究】(一)MVC容器初始化🏅彻底让你明白运行原理和源码流程
0 0
【Spring专场】「MVC容器」不看源码就带你认识核心流程以及运作原理
【Spring专场】「MVC容器」不看源码就带你认识核心流程以及运作原理
0 0
【Spring专场】「AOP容器」不看源码就带你认识核心流程以及运作原理
【Spring专场】「AOP容器」不看源码就带你认识核心流程以及运作原理
0 0
【Spring 专场】「IOC 容器」不看源码就带你认识核心流程以及运作原理
【Spring 专场】「IOC 容器」不看源码就带你认识核心流程以及运作原理
0 0
【Spring容器启动执行流程】
【Spring容器启动执行流程】
0 0
【Spring专题】「实战系列」Spring容器注入Bean对象的方法及梳理
【Spring专题】「实战系列」Spring容器注入Bean对象的方法及梳理
0 0
+关注
黄威的世界
我是一个热衷IT技术的人,希望自己不断地设计开发出对别人非常有用的软件。有近7年的java开发经验(包括2年Android开发经验)和一年左右的linux使用经验。擅长Java Web后台开发 ,喜欢研究新的各种实用技术
文章
问答
文章排行榜
最热
最新
相关电子书
更多
阿里云文件存储 NAS 在容器场景的最佳实践
立即下载
Java Spring Boot开发实战系列课程(第17讲):Spring Boot 2.0实战Docker容器Linux
立即下载
冬季实战营第四期:零基础容器技术实战
立即下载