`
a2429854489
  • 浏览: 3253 次
社区版块
存档分类
最新评论

使用Struts 2开发应用04:程序概要分析

阅读更多

文章翻译自Struts 2官方文档

 

程序概要分析软件寻找程序执行过程中的瓶颈。除了IDE提供的概要分析服务和独立的分析软件之外,框架提供了程序概要分析的内部支持。

 

程序概要分析的概貌

Struts2程序概要分析的概貌包括下面的内容:

  • ActionContextCleanUp
  • FreemarkerPageFilter
  • DispatcherFilter
    • Dispatcher
      • creation of DefaultActionProxy
        • creation of DefaultActionInvocation
          • creation of Action
      • execution of DefaultActionProxy
        • invocation of DefaultActionInvocation
          • invocation of Interceptors
          • invocation of Action
          • invocation of PreResultListener
          • invocation of Result

使用程序概要分析

为了使用程序概要分析,首先设法确保你的action已经使用了profiling拦截器,像下面这样:

 

<action ... >   
   ... 
   <interceptor-ref name="profiling"> 
       <param name="profilingKey">profiling</param> 
   </interceptor-ref> 
   ... 
</action> 

然后用下面的方法之一使用程序概要分析:

通过系统属性启动

-Dxwork.profile.activate=true

这可以在容器的启动脚本里完成,例如在catalina.sh的CATALINA_OPTS(tomcat)或者使用‘java -Dxwork.profile.activate=true’(jetty)。

通过代码启动

UtilTimerStack.setActivate(true);

这可以在静态块中完成,在Spring bean中使用lazy-init=‘false’,在Servlet中使用带数字值的init-on-startup,在过滤器或监听器的init方法中等等。

通过参数启动

http://host:port/context/namespace/someAction.action?profiling=true 

 

改变启动参数的名字

设置profiling拦截器的profilingKey属性为期望的名字:

<action ... >   
   ... 
   <interceptor-ref name="profiling"> 
       <param name="profilingKey">profiling</param> 
   </interceptor-ref> 
   ... 
</action> 

通过参数启动程序概要分析要求struts.devMode的值为true

过滤程序概要分析信息

通过设置下面的系统属性你可以过滤概要分析的日志:

-Dxwork.profile.mintime=10000

使用xwork.profile.mintime属性,你可以仅输出执行时间超过定义在xwork.profile.mintime系统属性中的时间的概要分析信息。若果没有定义这个属性,这个属性的值将假设为0,所以所有的概要分析信息都会输出。

编写程序概要分析代码

在自己的web应用中你也可以扩展Struts2提供的概要分析功能。

使用UtilTimerStack的push和pop

 

String logMessage = "Log message"; 
UtilTimerStack.push(logMessage); 
try { 
    // do some code 
} finally { 
    UtilTimerStack.pop(logMessage); // this needs to be the same text as above 
} 

 

使用UtilTimerStack的ProfileBlock模板

String result = UtilTimerStack.profile("purchaseItem: ",  
      new UtilTimerStack.ProfilingBlock<String>() { 
           public String doProfiling() { 
              // do some code 
              return "Ok"; 
           } 
      }); 

程序概要分析日志文件

概要分析的结果使用commons-logging下的名为com.opensymphony.xwork2.util.profiling.UtilTimerStack的logger输出。依赖底层的日志实现方式,比如说是Log4j,你可以指示日志输出到不同的文件,用邮件的方式发给某人或者把它存储到数据库中。

 

分享到:
评论

相关推荐

    Struts2 in action中文版

    8.1.1 页面上:如何使用自定义结果组件构建Struts 2 Ajax应用程序 171 8.1.2 实现JSON结果类型 173 8.2 常用的结果类型 180 8.2.1 RequestDispatcher,也叫做dispatcher 180 8.2.2 ServletRedirectResult,也叫做...

    Spring + Struts + Hibernate (整合概要)

    Spring、Struts和Hibernate是Java开发中非常经典的三大框架,它们各自在应用程序的不同层次上发挥作用,共同构建出高效、可维护的企业级应用。这个整合概要主要探讨的是如何将这三个框架无缝集成,以实现强大的MVC...

    毕业设计论文-基于struts2的银行储蓄系统的设计与实现

    - **Struts2**:是一个开源的MVC框架,用于简化Java EE web应用的开发,提供了一种组织应用程序代码的结构。 - **Hibernate**:是一个ORM(Object-Relational Mapping)框架,用于简化Java应用与数据库之间的交互,...

    JAVA程序开发大全---上半部分

    以及基于这些技术的商业化应用程序的开发技巧,在讲解过程中以目前最为流行的开发工具MyEclipse为载体,全面系统地介绍了如何在MyEclipse中开发基于Struts、Hibernate、Spring等主流框架的各种Java应用程序。...

    基于struts-hibernate网上论坛系统课程设计任务书毕设论文.doc

    Struts是一个基于MVC模式的Web应用程序框架,用于处理用户请求和响应。Hibernate是一个基于ORM(Object-Relational Mapping)的持久层框架,用于映射对象到关系型数据库中。 在课程设计报告中,需要对Struts和...

    基于Struts-Hibernate网上论坛系统课程设计任务书.doc

    **Struts** 是一个用于构建Java Web应用程序的MVC(Model-View-Controller)框架。它负责处理用户请求,控制业务逻辑,协调视图和模型。在本项目中,Struts将作为前端控制器,处理HTTP请求,调用相应的Action,将...

    Struts in Action 中文版(有索引).pdf

    - **用 Struts 开发 Web 应用** 介绍如何使用 Struts 来开发一个完整的 Web 应用程序,包括项目的搭建、配置等步骤。 #### 2.3 为什么需要框架 - **Web — 永无休止的修补** 描述了在没有使用框架的情况下开发 Web...

    名片管理系统设计报告和代码分析

    Struts2 是一个基于MVC 模式的Web 应用程序框架,能够帮助开发者快速构建高质量的Web 应用程序。Struts2 提供了许多有用的功能,例如表单处理、数据验证、国际化支持等。 知识点4:Hibernate 技术 Hibernate 是一个...

    Java的概要介绍与分析

    ### Java的概要介绍与分析 #### Java编程语言概述 Java是一种高级编程语言,自1995年由Sun Microsystems发布以来,迅速获得了广泛的认可,并在多个领域占据主导地位。Java最大的特点是“一次编写,到处运行”...

    基于StrutsHibernate网上论坛系统课程设计任务书.doc

    本课程设计旨在通过构建一个基于Struts和Hibernate的网上论坛系统,让学生深入理解Web应用程序的开发流程,特别是涉及到MVC(Model-View-Controller)架构的应用以及对象关系映射(ORM)技术的实践。通过此项目,...

    本科毕业论文---程序设计评判系统说明书论文.doc

    * 前台实现:使用 Struts 框架和 JSP 技术实现前台的开发。 * 后台实现:使用 Hibernate 和 MySQL 实现后台的开发。 * 数据库实现:使用 MySQL 实现数据库的设计和实现。 系统测试 系统测试主要包括以下几个方面:...

    网上招聘系统概要设计

    Struts框架用于控制应用程序的流程,处理用户的请求,并调用相应的业务逻辑组件。它结合了Model(模型)、View(视图)和Controller(控制器)的概念,使得系统更具可维护性和扩展性。 在实际设计中,还会涉及到...

    手机销售概要设计

    SSHJPA框架是一种基于Java EE的框架,用于开发企业级应用程序。SSHJPA框架由Spring、Struts、Hibernate和JPA四个组件组成,每个组件都有其特定的功能和优势。 JSP技术 JSP(JavaServer Pages)是一种基于Java的...

    java开发的岗位职责-java开发岗位职责.docx

    2. **Linux命令:** 应聘者需要了解基本的Linux命令,这对于在Linux环境下部署和调试应用程序至关重要。 3. **数据库熟悉度:** 应熟悉主流数据库如MySql和Oracle等,这包括数据库的设计、查询以及性能优化等方面的...

    概要设计说明书.doc

    2. **Web框架**: Struts 1.2.x,它是一个基于MVC设计模式的Java Web框架,用于构建动态网页应用程序。 3. **依赖注入和管理框架**: Spring 1.2.x,Spring框架提供了一个全面的编程和配置模型,简化了企业级应用的...

    网上书店系统地需求分析和概要设计.pdf

    ○4 Dreamweaver软件Dreamweaver 是一款集网页制作和管理网站于一身的所见即所得网页编辑器,它可以用来创建、编码和管理网站及应用程序,是开发人员常用的前端设计工具,尤其在快速构建和预览页面布局方面非常便捷...

    DEMO系统概要设计文档

    - **Spring**:Spring Framework是由Pivotal公司支持的一个开源项目,它提供了一套全面的编程和配置模型来开发Java应用程序,支持IoC(控制反转)、AOP(面向切面编程)等功能。 - **Hibernate**:Hibernate是一款...

    CSSP_CMS-网站开发概要设计说明书

    【CSSP_CMS-网站开发概要设计说明书】 本文档主要阐述了长沙园有限公司信息中心进行的CSSP_CMS网站的概要设计,旨在为详细设计和系统实施提供基础。该设计说明书涉及到总体设计、接口设计、运行设计、系统数据结构...

    oa软件系统开发工程的流程

    第二部分,1,应用struts框架 第二部分,2,完成应用struts框架的登陆功能模块 第二部分,3,完成应用struts框架的登陆功能模块 第三部分,进一步完善struts的登陆功能模块 第四部分,程序的普通结构 第四部分补充和测试 第...

Global site tag (gtag.js) - Google Analytics