博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JSP获取spring 的容器ApplicationContext
阅读量:7040 次
发布时间:2019-06-28

本文共 2416 字,大约阅读时间需要 8 分钟。

Jsp 中如何获取的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上下文中是不同的。

转载地址:http://axaal.baihongyu.com/

你可能感兴趣的文章
如何选购台式电脑和笔记本?购买时应注意什么
查看>>
Spring MVC基于注解来格式化数据
查看>>
mysql主从同步错误解决和Slave_IO_Running: NO
查看>>
编码问题之:java.io.UTFDataFormatException: Invalid byte 2 of 2-byte UTF-8 sequence.
查看>>
配置samba服务
查看>>
查找对话框实现
查看>>
Microsoft活动目录的作用以及优势
查看>>
小五思科技术学习笔记之单区域OSPF
查看>>
Hyper-V Server存储介绍
查看>>
[图示]神相的‘敏捷项目管理’
查看>>
更换云服务器上的Python版本
查看>>
Skype for Business Server 2015-04-前端服务器-7-部署
查看>>
你的Postfix邮件服务器安全么?
查看>>
站在巨人肩膀看清IT馅饼和陷阱
查看>>
Android系统匿名共享内存(Anonymous Shared Memory)C++调用接口分析(4)
查看>>
Windows 7 的一些使用技巧
查看>>
Spring Boot中使用Redis数据库
查看>>
完整性检查工具Nabou
查看>>
Exchange企业实战技巧(26)在Outlook中打开多个邮箱
查看>>
一个Linux小型综合实验
查看>>