文章翻译自Struts 2官方文档。
程序概要分析软件寻找程序执行过程中的瓶颈。除了IDE提供的概要分析服务和独立的分析软件之外,框架提供了程序概要分析的内部支持。
程序概要分析的概貌
Struts2程序概要分析的概貌包括下面的内容:
- ActionContextCleanUp
- FreemarkerPageFilter
- DispatcherFilter
- Dispatcher
- creation of DefaultActionProxy
- creation of DefaultActionInvocation
- creation of Action
- creation of DefaultActionInvocation
- execution of DefaultActionProxy
- invocation of DefaultActionInvocation
- invocation of Interceptors
- invocation of Action
- invocation of PreResultListener
- invocation of Result
- invocation of DefaultActionInvocation
- creation of DefaultActionProxy
- Dispatcher
使用程序概要分析
为了使用程序概要分析,首先设法确保你的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,你可以指示日志输出到不同的文件,用邮件的方式发给某人或者把它存储到数据库中。
相关推荐
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是Java开发中非常经典的三大框架,它们各自在应用程序的不同层次上发挥作用,共同构建出高效、可维护的企业级应用。这个整合概要主要探讨的是如何将这三个框架无缝集成,以实现强大的MVC...
- **Struts2**:是一个开源的MVC框架,用于简化Java EE web应用的开发,提供了一种组织应用程序代码的结构。 - **Hibernate**:是一个ORM(Object-Relational Mapping)框架,用于简化Java应用与数据库之间的交互,...
以及基于这些技术的商业化应用程序的开发技巧,在讲解过程中以目前最为流行的开发工具MyEclipse为载体,全面系统地介绍了如何在MyEclipse中开发基于Struts、Hibernate、Spring等主流框架的各种Java应用程序。...
Struts是一个基于MVC模式的Web应用程序框架,用于处理用户请求和响应。Hibernate是一个基于ORM(Object-Relational Mapping)的持久层框架,用于映射对象到关系型数据库中。 在课程设计报告中,需要对Struts和...
**Struts** 是一个用于构建Java Web应用程序的MVC(Model-View-Controller)框架。它负责处理用户请求,控制业务逻辑,协调视图和模型。在本项目中,Struts将作为前端控制器,处理HTTP请求,调用相应的Action,将...
- **用 Struts 开发 Web 应用** 介绍如何使用 Struts 来开发一个完整的 Web 应用程序,包括项目的搭建、配置等步骤。 #### 2.3 为什么需要框架 - **Web — 永无休止的修补** 描述了在没有使用框架的情况下开发 Web...
Struts2 是一个基于MVC 模式的Web 应用程序框架,能够帮助开发者快速构建高质量的Web 应用程序。Struts2 提供了许多有用的功能,例如表单处理、数据验证、国际化支持等。 知识点4:Hibernate 技术 Hibernate 是一个...
### Java的概要介绍与分析 #### Java编程语言概述 Java是一种高级编程语言,自1995年由Sun Microsystems发布以来,迅速获得了广泛的认可,并在多个领域占据主导地位。Java最大的特点是“一次编写,到处运行”...
本课程设计旨在通过构建一个基于Struts和Hibernate的网上论坛系统,让学生深入理解Web应用程序的开发流程,特别是涉及到MVC(Model-View-Controller)架构的应用以及对象关系映射(ORM)技术的实践。通过此项目,...
* 前台实现:使用 Struts 框架和 JSP 技术实现前台的开发。 * 后台实现:使用 Hibernate 和 MySQL 实现后台的开发。 * 数据库实现:使用 MySQL 实现数据库的设计和实现。 系统测试 系统测试主要包括以下几个方面:...
Struts框架用于控制应用程序的流程,处理用户的请求,并调用相应的业务逻辑组件。它结合了Model(模型)、View(视图)和Controller(控制器)的概念,使得系统更具可维护性和扩展性。 在实际设计中,还会涉及到...
SSHJPA框架是一种基于Java EE的框架,用于开发企业级应用程序。SSHJPA框架由Spring、Struts、Hibernate和JPA四个组件组成,每个组件都有其特定的功能和优势。 JSP技术 JSP(JavaServer Pages)是一种基于Java的...
2. **Linux命令:** 应聘者需要了解基本的Linux命令,这对于在Linux环境下部署和调试应用程序至关重要。 3. **数据库熟悉度:** 应熟悉主流数据库如MySql和Oracle等,这包括数据库的设计、查询以及性能优化等方面的...
2. **Web框架**: Struts 1.2.x,它是一个基于MVC设计模式的Java Web框架,用于构建动态网页应用程序。 3. **依赖注入和管理框架**: Spring 1.2.x,Spring框架提供了一个全面的编程和配置模型,简化了企业级应用的...
○4 Dreamweaver软件Dreamweaver 是一款集网页制作和管理网站于一身的所见即所得网页编辑器,它可以用来创建、编码和管理网站及应用程序,是开发人员常用的前端设计工具,尤其在快速构建和预览页面布局方面非常便捷...
- **Spring**:Spring Framework是由Pivotal公司支持的一个开源项目,它提供了一套全面的编程和配置模型来开发Java应用程序,支持IoC(控制反转)、AOP(面向切面编程)等功能。 - **Hibernate**:Hibernate是一款...
【CSSP_CMS-网站开发概要设计说明书】 本文档主要阐述了长沙园有限公司信息中心进行的CSSP_CMS网站的概要设计,旨在为详细设计和系统实施提供基础。该设计说明书涉及到总体设计、接口设计、运行设计、系统数据结构...
第二部分,1,应用struts框架 第二部分,2,完成应用struts框架的登陆功能模块 第二部分,3,完成应用struts框架的登陆功能模块 第三部分,进一步完善struts的登陆功能模块 第四部分,程序的普通结构 第四部分补充和测试 第...