博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaWeb应用中获取Spring的ApplicationContext
阅读量:6070 次
发布时间:2019-06-20

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

ApplicationContext是Spring的容器环境,通过ApplicationContext对象可以访问所有配置的bean。
 
在Web开发开发中,常常需要从JSP或者Servlet或者Action中获取ApplicationContext对象,这时候,就无法使用new关键字通过查找配置文件来实例化ApplicationContext这个对象了。Spring通过WebApplicationContextUtils可以方便实现您的需求。下面看个例子:
 
一、Spring2.5+Struts2环境下
 
1、配置web.xml,通过这个配置来获取的。
<?
xml 
version
="1.0" 
encoding
="UTF-8"
?> 

<
web-app 
xmlns
="http://java.sun.com/xml/ns/javaee" 

                     
xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance" 

                     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 

        [url]http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd[/url]" 

                     
version
="2.5"
> 

        
<
context-param
> 

                
<
param-name
>contextConfigLocation
</
param-name
> 

                
<
param-value
>/WEB-INF/applicationContext.xml
</
param-value
> 

        
</
context-param
> 


        
<
filter
> 

                
<
filter-name
>struts2
</
filter-name
> 

                
<
filter-class
>org.apache.struts2.dispatcher.FilterDispatcher
</
filter-class
> 

        
</
filter
> 

        
<
filter-mapping
> 

                
<
filter-name
>struts2
</
filter-name
> 

                
<
url-pattern
>/*
</
url-pattern
> 

        
</
filter-mapping
> 

        
<
listener
> 

                
<
listener-class
>org.springframework.web.context.ContextLoaderListener
</
listener-class
> 

        
</
listener
> 

        
<
servlet
> 

                
<
servlet-name
>dispatcher
</
servlet-name
> 

                
<
servlet-class
>org.springframework.web.servlet.DispatcherServlet
</
servlet-class
> 

                
<
load-on-startup
>1
</
load-on-startup
> 

        
</
servlet
> 

        
<
servlet-mapping
> 

                
<
servlet-name
>dispatcher
</
servlet-name
> 

                
<
url-pattern
>*.form
</
url-pattern
> 

        
</
servlet-mapping
> 

</
web-app
>
 
2、在JSP、Servlet、Action中获取ApplicationContext
 
<
%@ page 
import
="lavasoft.service.TestService" %
> 

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

<
%@ page 
import
="org.springframework.web.context.support.WebApplicationContextUtils" %
> 

<
%@ page 
contentType
="text/html;charset=UTF-8" 
language
="java" %
> 

<
html
> 

<
head
>
<
title
>Simple jsp page
</title>
</head> 

<
body
> 

<% 

//        ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(request.getSession().getServletContext()); 
        ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(session.getServletContext()); 
        TestService service = (TestService) ctx.getBean("testService"); 

        String s = service.test(); 

        out.print(s); 

%> 


</body> 

</html>
 
二、Spring+JSP的环境
 
在此环境下web.xml配置会有些变化:
<?
xml 
version
="1.0" 
encoding
="UTF-8"
?> 

<
web-app 
xmlns
="http://java.sun.com/xml/ns/javaee" 

                     
xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance" 

                     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 

        [url]http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd[/url]" 

                     
version
="2.5"
> 


        
<
context-param
> 

                
<
param-name
>contextConfigLocation
</
param-name
> 

                
<
param-value
>/WEB-INF/applicationContext.xml
</
param-value
> 

        
</
context-param
> 

        
<
listener
> 

                
<
listener-class
>org.springframework.web.context.ContextLoaderListener
</
listener-class
> 

        
</
listener
> 

        
<
servlet
> 

                
<
servlet-name
>dispatcher
</
servlet-name
> 

                
<
servlet-class
>org.springframework.web.servlet.DispatcherServlet
</
servlet-class
> 

                
<
load-on-startup
>1
</
load-on-startup
> 

        
</
servlet
> 

        
<
servlet-mapping
> 

                
<
servlet-name
>dispatcher
</
servlet-name
> 

                
<
url-pattern
>*.form
</
url-pattern
> 

        
</
servlet-mapping
> 

</
web-app
>
 
获取的方式和上述完全一样。
 
下面给出本例子的工程源码。
本文转自 leizhimin 51CTO博客,原文链接:http://blog.51cto.com/lavasoft/126570,如需转载请自行联系原作者
你可能感兴趣的文章
C#数据采集类
查看>>
quicksort
查看>>
检验函数运行时间
查看>>
【BZOJ2019】nim
查看>>
Oracle临时表空间满了的解决办法
查看>>
四部曲
查看>>
LINUX内核调试过程
查看>>
【HDOJ】3553 Just a String
查看>>
Java 集合深入理解(7):ArrayList
查看>>
2019年春季学期第四周作业
查看>>
linux环境配置
查看>>
ASP.NET MVC中从前台页面视图(View)传递数据到后台控制器(Controller)方式
查看>>
lintcode:next permutation下一个排列
查看>>
python 递归
查看>>
一个想法(续二):换个角度思考如何解决IT企业招聘难的问题!
查看>>
tomcat指定配置文件路径方法
查看>>
linux下查看各硬件型号
查看>>
对象合成复用之策略模式
查看>>
linux命令之tail
查看>>
epoll的lt和et模式的实验
查看>>