`

[java web]关于applicationcontext的知识

阅读更多
今天学习了关于applicationcontext的知识,主要是在代码中遇到了,希望能分享下。
了解集中获取applicationcontext的方式:
方法一:在初始化时保存ApplicationContext对象
代码:
ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml");
ac.getBean("beanId");
这种方式适用于采用Spring框架的独立应用程序,需要程序通过配置文件手工初始化Spring的情况。
方法二:通过Spring提供的工具类获取ApplicationContext对象
代码:
import org.springframework.web.context.support.WebApplicationContextUtils;
ApplicationContext ac1 = WebApplicationContextUtils.getRequiredWebApplicationContext(ServletContext sc);
ApplicationContext ac2 = WebApplicationContextUtils.getWebApplicationContext(ServletContext sc);
ac1.getBean("Bean1");
ac2.getBean("Bean2");
说明:
这种方式适合于采用Spring框架的B/S系统,通过ServletContext对象获取ApplicationContext对象,然后在通过它获取需要的类实例。
上面两个工具方式的区别是,前者在获取失败时抛出异常,后者返回null。
其中 servletContext sc 可以具体 换成 servlet.getServletContext()或者 this.getServletContext() 或者 request.getSession().getServletContext(); 另外,由于spring是注入的对象放在ServletContext中的,所以可以直接在ServletContext取出

WebApplicationContext 对象: WebApplicationContext webApplicationContext = (WebApplicationContext) servletContext.getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);

另外转一个比较赞成的说法:http://hi.baidu.com/xrmeng/item/3b8eab839f368ae9e596e03e

Spring获取ApplicationContext的正确方式
Spring获取ApplicationContext的正确方式      前两天联华对单系统频频出现out of memory的问题,经过层层分析,终于弄明白原来瓶颈出现在Spring获取Bean那一步上。以前的做法是在delegate层ApplicationContext context = new ClassPathXmlApplicationContext("Compare.xml"); 这样我把log4j的debug打开后发现,每做1步操作的时候系统都会重新加载这个xml,重新创建Bean的实例,重新获取url-mapping,这无疑是个及其错误的方式。      研究后发现正确的使用方式是:      首先在web.xml里配置ApplicationContext      <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>      然后在Action中编写如下代码得到Context,(我是覆盖了Struts Action的setServlet方法,也许还有更好的方法)。      public void setServlet(ActionServlet servlet){
         super.setServlet(servlet);
         ServletContext servletContext = servlet.getServletContext();
        WebApplicationContext wac =    WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);
         // get yours beans     }      这样在启动服务时已经加载了xml中的配置,而不用每次都重新加载,大大提高了系统的效率

分享到:
评论

相关推荐

    Java Web项目在线商城.zip

    【Java Web项目在线商城】是一个综合性的开发案例,主要用于教授和实践Java Web应用程序的开发技术。这个项目包含了一个完整的在线商城系统,集成了购物、支付、用户管理等多种功能,是学习和理解Web应用开发的绝佳...

    基于Java web的SSM框架的 企业人事管理系统(源码+数据库).zip

    学习这个项目,开发者可以深入理解Java Web开发的全过程,包括MVC设计模式、数据库操作、事务管理、异常处理、安全性控制等方面的知识。同时,也能了解到如何集成和配置各种框架,以及如何调试和测试Web应用程序。...

    第3章【源码】java web整合开发实战--基于struts 2+hibernate+spring 贾蓓 镇明敏 杜磊

    在本章"第3章【源码】java web整合开发实战--基于struts 2+hibernate+spring"中,我们将深入探讨如何在Java Web应用程序中集成三个关键的开源框架:Struts 2、Hibernate和Spring。这些框架分别负责控制层、持久层和...

    Java Web开发技术大全

    总的来说,"Java Web开发技术大全"所涵盖的知识点广泛且深入,不仅包括基础的Web客户端技术,还涉及到复杂的服务器端开发技巧。学习并掌握这些内容,开发者能够构建出高效、可扩展的Java Web应用。

    JAVA WEB 应用入门配置

    以上就是关于Java Web应用的基础配置知识,包括了Web应用的基本目录结构、Eclipse项目配置、Struts2框架配置、Spring框架配置以及Hibernate框架配置等内容。希望这些知识点能够帮助初学者更好地理解Java Web应用的...

    基于Java web的在线音乐管理系统(源码+数据库).zip

    《基于Java Web的在线音乐管理系统详解》 在线音乐管理系统是一个典型的Web应用程序,它结合了Java技术和MySQL数据库,为用户提供了一种便捷的方式来管理和享受音乐资源。本文将深入探讨该系统的关键技术、实现流程...

    Java Web项目加入Spring框架

    以上就是Java Web项目集成Spring框架的基本步骤和核心知识点。随着对Spring的理解加深,你可以探索更高级的功能,如Spring Boot、Spring Cloud等,进一步提升开发效率和应用的可扩展性。记住,实践是最好的老师,...

    java web ssm仓库管理系统(源码+数据库脚本).zip

    "java web ssm仓库管理系统(源码+数据库脚本)" 这个标题揭示了我们要讨论的是一个基于Java Web技术的SSM框架实现的仓库管理系统。SSM是Spring、Spring MVC和MyBatis三个开源框架的组合,它们在Java Web开发中被...

    基于Java web的仓库管理系统(源码+数据库).zip

    【标题】"基于Java web的仓库管理系统(源码+数据库).zip"是一个包含完整的Java Web应用程序,用于实现仓库管理功能。此系统采用Java技术栈,结合MySQL数据库,为用户提供了一个有效的库存控制和管理工具。 【描述...

    java web试题

    Java Web是Java技术在Web应用开发中的应用,涵盖了Servlet、JSP、JSTL、过滤器、监听器、MVC模式、Spring、Struts、Hibernate等众多知识点。本压缩包包含"src"和"web"两个目录,它们分别对应着Java Web应用的主要...

    使用Eclipse IDE开发Java Web应用程序

    通过学习这些知识点,开发者可以快速掌握使用Eclipse IDE结合Struts、Spring、Hibernate等框架进行Java Web开发的方法和技术。此外,还介绍了Spring对多数据库事务的支持、Struts配置文件的分割、文件上传大小限制等...

    基于java web+ssm个人财务管理系统.zip

    【标题】:“基于Java Web+SSM的个人财务管理系统”是一个综合性的项目,它结合了Java Web技术、Spring、SpringMVC和MyBatis(SSM框架)来实现对个人财务数据的管理。这个系统旨在帮助用户高效地记录、跟踪和分析...

    计算机毕业设计-人力资源管理系统-Java Web项目源码.zip

    通过分析和学习这个项目,可以深入理解Java Web开发的流程,包括MVC设计模式、数据库设计、事务处理、权限控制、异常处理等方面的知识。同时,对于初次接触此类项目的学生,这也是一个很好的实践平台,能帮助他们将...

    Java.Web开发详解.书中例子的源代码.zip

    通过学习和分析这些源代码,开发者可以深入理解Java Web开发的工作原理,掌握如何将理论知识应用到实际项目中。例如,可以学习到如何处理HTTP请求,如何与数据库交互,如何组织应用程序的结构,以及如何实现用户认证...

    毕业设计 Java web项目源码整合开发ssm-网上淘书吧.rar

    【标题】"毕业设计 Java web项目源码整合开发ssm-网上淘书吧.rar" 提供的是一个基于Java Web的毕业设计项目,该项目利用了Spring、SpringMVC和MyBatis(SSM)框架进行开发,旨在实现一个在线图书购物平台——"网上淘...

    spring4的所有jar包+applicationContext.xml+web.xml

    在“spring4的所有jar包+applicationContext.xml+web.xml”这个组合中,我们主要讨论以下几个关键知识点: 1. **Spring框架的jar包**:Spring框架由多个模块组成,每个模块都有相应的jar包。主要包括Spring Core、...

    毕业设计 Java web项目源码整合开发ssm 网上淘书吧

    【标题】"毕业设计 Java web项目源码整合开发ssm 网上淘书吧" 涉及的核心技术是Java Web开发中的SSM框架,即Spring、Spring MVC和MyBatis的集成应用。这个项目可能是一个在线书店的模拟平台,允许用户浏览、搜索和...

    基于Java web的公司财务管理系统(源码+数据库+运行视频).zip

    总的来说,这个基于Java Web的公司财务管理系统为学习者提供了一个宝贵的实战平台,它结合了理论知识与实践经验,有助于提升开发者在Web开发领域的专业素养。同时,对于那些需要进行课程设计或毕业设计的学生,这是...

    基于Java Web实现高校就业管理信息系统.zip

    本项目是一个基于Java Web技术实现的高校就业管理信息...这个高校就业管理信息系统是一个典型的Java Web项目实例,对于学习者来说,可以深入理解Web开发流程,掌握核心技术,并了解如何将理论知识应用于实际项目中。

    基于Java web ssm框架的人事管理系统(源码+数据库).zip

    【Java Web SSM框架详解】 Java Web SSM框架是指Spring、...以上就是关于"基于Java web ssm框架的人事管理系统"的主要知识点,通过学习和实践,开发者可以深入理解Java Web开发的全貌,并掌握SSM框架的使用技巧。

Global site tag (gtag.js) - Google Analytics