`
lan13217
  • 浏览: 483494 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

转当web中应用spring框架时,获得spring初始化的bean和ServletContext

 
阅读更多

 

http://floys1987.iteye.com/blog/372111

这些天,一直在边学习,边做东西,发现,慢慢的补上了不少知识。今天发现了一个很有用的技巧,希望能给不知道的人,一点帮助。 

当在web启动后,spring已经初始化的bean,已经按照你的约束注入了。那么如何获取那些sigleton 的bean。 网上说, 可以用servlet来做,其实没有必要。 

第一种方法,慢一般是300+ms,可以说是多费一道手,不过,还是记录下来,也许有点意义。 

Java代码  收藏代码
  1. public class SpringBeans{  
  2.         private static ApplicationContext factory;  
  3.     private static ServletContext sc ;  
  4.   
  5.   
  6.     private static final String APPLICATION_CONTEXT = "\\WEB-INF\\applicationContext.xml";  
  7.     private static final String DAO_CONTEXT = "\\WEB-INF\\daoHibernateContext.xml";  
  8.   
  9.     public static Object getBean(String beanID){  
  10.         factory = getFactory();  
  11.         return factory.getBean(beanID);  
  12.     }  
  13.       
  14.     private static ApplicationContext getFactory(){  
  15.         sc = MyServletContext.getServletContext();  
  16.         String aAC = sc.getRealPath(APPLICATION_CONTEXT);  
  17.         String aDC = sc.getRealPath(DAO_CONTEXT);  
  18.         ApplicationContext tmpfactory = new FileSystemXmlApplicationContext(  
  19.                 new String[] { aAC , aDC});  
  20.         return tmpfactory;  
  21.     }  
  22. }  
  23. // 当你取得的时候可以这样用  
  24.   
  25.         (Object)bean = (Object)SpringBeans.getBean(beanID);  


这种做法,是我第一次的方法,后来,经过猛看javaDoc,又发现了一个好东西,(希望大家以后做东西也能猛看javaDoc,按照名字去看,也许你会找到些什么,虽然多数时候是迷茫) 

Java代码  收藏代码
  1. import org.springframework.web.context.ContextLoader;  
  2. import org.springframework.web.context.WebApplicationContext;  
  3.   
  4.     WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();  
  5.     wac.getBean(beanID);  


WebApplicationContext 应该就是spring的sevlet(也许是linstener或别的,这方面我的基本功还不够,也许说错哦)启动后加载到servletContext中的东西。你"."一下这个对象你会发现,你想获得的好多东西都出来了。而且,再速度上好过第一种方法,它的获取速度,在用 
两次System.currentTimeMills()计时时,得出的结果是0ms。 

希望对没有找到答案,或是正在找这个答案的人有帮助。还有,它还能获得web程序的servletContext。 
Java代码  收藏代码
  1. WebApplicationContext wac..;  
  2. wac.getServletContext();  

分享到:
评论

相关推荐

    ServletContext读取web应用中的资源文件.doc

    ServletContext读取web应用中的资源文件

    spring-web-2.5.jar

    org.springframework.web.context.support.ServletContextResource.class org.springframework.web.context.support.ServletContextResourceLoader.class org.springframework.web.context.support....

    ServletConfig与ServletContext.docx

    注意:每个servlet有一个ServletConfig,...如果修改XML来改变一个初始化参数的值,只有当Web应用重新部署时Web应用其他部分才会看到,因为servlet只会初始化一次,在初始化时会为它提供ServletConfig和ServletContext。

    Spring-Reference_zh_CN(Spring中文参考手册)

    3.3.5. 延迟初始化bean 3.3.6. 自动装配(autowire)协作者 3.3.6.1. 设置Bean使自动装配失效 3.3.7. 依赖检查 3.3.8. 方法注入 3.3.8.1. Lookup方法注入 3.3.8.2. 自定义方法的替代方案 3.4. bean的作用域 3.4.1. ...

    spring web flow demo

    通过将 JSF 层层包装,最终可在 Spring Framework 和 Spring Web Flow 中使用 JSF 的各种 组件。 • 与 Spring Security (原 Acegi Security )整合 只需将某个 flow 声明为“ secured ”,即可利用 Spring ...

    Spring中文帮助文档

    6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点运算 7.2.3. AspectJ切入点表达式 7.2.4. 便利的切入...

    org.springframework.web.servlet-3.0.1.RELEASE-A.jar

    Error creating bean with name 'org.springframework.web.servlet.handler.SimpleUrlHandlerMapping#0' defined in ServletContext resource [/WEB-INF/springMVC-servlet.xml]: Initialization of bean failed;...

    spring源代码解析

    从加载过程我们可以看到,首先从Servlet事件中得到ServletContext,然后可以读到配置好的在web.xml的中的各个属性值,然后ContextLoder实例化WebApplicationContext并完成其载入和初始化作为根上下文。当这个根上...

    Spring 2.0 开发参考手册

    3.3.5. 延迟初始化bean 3.3.6. 自动装配(autowire)协作者 3.3.7. 依赖检查 3.3.8. 方法注入 3.4. bean的作用域 3.4.1. Singleton作用域 3.4.2. Prototype作用域 3.4.3. 其他作用域 3.4.4. 自定义作用域 ...

    Spring API

    6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点运算 7.2.3. AspectJ切入点表达式 7.2.4. 便利的切入...

    spring chm文档

    3.3.5. 延迟初始化bean 3.3.6. 自动装配(autowire)协作者 3.3.7. 依赖检查 3.3.8. 方法注入 3.4. bean的作用域 3.4.1. Singleton作用域 3.4.2. Prototype作用域 3.4.3. 其他作用域 3.4.4. 自定义作用域 ...

    Spring-for -servletcontext1.0.jar

    Ssh获取ServletContext 只需要更改struts-config action中的type就可以了ru :type="com.uo.spring.SpringDelegatingActionProxy" 大家有什么疑问可以直接去我的blog查看http://blog.csdn.net/chen1255/ 《[正解]Ssh...

    servlet中的ServletContext的使用

    这是servlet中ServletContext的应用实例,主要就是添加属性和读取属性。

    超全面javaweb教程28天第9天 16 ServletContext获取公共的初始化参数

    超全面javaweb教程28天第9天_16_ServletContext获取公共的初始化参数

    ServletContext与ServletConfig关系

    ServletContext与ServletConfig关系

    Struts2+Spring3+MyBatis3完整实例

    网上的东西好大多都不能直接用,自己结合网上资料做了一个Struts2+Spring3+MyBatis3的测试工程,JUnit测试用例和WEB服务。 内涵完整jar包,解压直接可用,包括一个表文件。 Eclipse3.2+Tomcat/5.5+jdk1.5.0_17 - ...

    ServletContext

    ServletContext代码,开发工具 Myeclipse

    Maven整合ssm框架.zip

    ssm整合步骤: 第一步:mybatis单独测试 1.引入mybatis,mysql依赖 2.创建实体和dao层。... 整合的要点:就是让springmvc从servletContext中获取spring容器即可 1.在web.xml中配置spring的监听器即可。

    Java Web应用的生命周期

    对那些需要在启动时初始化的servlet初始化。  运行:  在这个阶段所有的servlet处于待命状态,等待客户端的请求。如果客户端的请求servlet不存在,则初始化对应的servlet。  销毁:  1.销毁所有处于运行...

    sevlet生命周期,request web.xml 及ServletContext总结

    Servlet生命周期,及servlet相关知识点的总结。

Global site tag (gtag.js) - Google Analytics