`
xierh21
  • 浏览: 23866 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

tomcat应用中使用aspectj输出服务器端的访问日志

阅读更多
想在web应用的服务器端避免编写太多一样的日志输出代码。我们一般采用aop技术,现在比较流行的是在sping中配置aop功能,网上很多相关资料。在不使用spring等容器注入技术的情况下,我们一般采用aspectj技术。
在此我分享一下采用aspectj输出日志时的运行环境和开发环境的配置。

下载相关包
aspectj的核心包http://eclipse.org/aspectj/downloads.php下载后解压缩,在目录中有aspectjrt.jar,aspectjweaver.jar(还有一些其他的,我们暂时只用这两个)
eclipse插件(ajdt)http://www.eclipse.org/ajdt/downloads/下载与eclipse相配的ajdt

我使用的开发环境:
    eclipse3.7
    tomcat6.0.18
    jdk1.6.12

配置开发环境
1,将下载的ajdt作为插件加入到eclipse中。
2,将aspectjrt.jar加到工程的库里面。
3,在tomcat的JVM设置中加入如下配置。
-javaagent:"C:\JAVA\APPServer\Tomcat\apache-tomcat-6.0.18\lib\aspectjweaver.jar"

为上面下载的aspectjweaver.jar的绝对路径。
4,编写aop.xml(文件名固定)
<?xml version="1.0" encoding="UTF-8"?>
<aspectj>
  <aspects>
  <concrete-aspect name="com.test.framework.aspect._Smsf_Aspect" 
   extends="com.test.framework.aspect.AbstractAspect">
   <pointcut name="runAccess" 
     expression="
execution(* com.test.framework.web.action.*.*(..)) ||
execution(* com.test.demo.web.handle.*.*(..)) ||
execution(* com.test.demo.dao.impl.*.*(..))"/>
     </concrete-aspect>
    </aspects>
</aspectj>

其中的name属性是一个由系统自动产生的类,不需要特意创建。


5,将aop.xml配置到java的/src/META-INF/中,确保编译后的路径为:WEB-INF/classes/META-INF/aop.xml.


6,编写步骤4中extends制定的虚拟类。
@Aspect
public abstract class AbstractAspect {
	// abstract pointcut: no expression is defined
    @Pointcut
    abstract void runAccess();

    @Before("runAccess()")
    public void before(JoinPoint jp) {
    	LogLogic.writeMethodStartlog(jp);
    }
    
    @After("runAccess()")
    public void after(JoinPoint jp) {
    	LogLogic.writeMethodEndlog(jp);
    }

}

7,运行代码。



配置运行环境
在开发环境中打好的war包放在web服务器(tomcat)中运行时,我们只需将启动tomcat的java命令中加上步骤3中所述的参数。
更改catalina.bat文件的JAVA_OPTS属性:
set JAVA_OPTS=%JAVA_OPTS% -javaagent:"C:\JAVA\APPServer\Tomcat\apache-tomcat-6.0.18\lib\aspectjweaver.jar"

用startup.bat启动服务器即可。
分享到:
评论
1 楼 raykcn 2013-01-22  
想知道,开发时想直接运行,或junit测试时,怎么设置?

相关推荐

    spring3.0架包

    9. `org.springframework.instrument.tomcat-3.0.0.RELEASE`:支持Tomcat服务器的连接池集成,主要用于类加载器的代理和服务器端性能优化。 10. `org.springframework.instrument-3.0.0.RELEASE`:提供了服务器端的...

    SpringMVC需要加载的一些包

    - `spring-instrument` 和 `spring-instrument-tomcat`: 用于服务器端的类装载器增强和Tomcat服务器的特殊支持。 在实际项目中,你需要根据具体需求选择引入这些包。通常,一个基本的SpringMVC项目至少需要`spring...

    前后端代码自动生成工具V1.4

    3. **tomcat-embed-core-8.5.31.jar**:这是一个Tomcat服务器的核心库,用于提供Java应用的嵌入式部署。这表明该工具可能基于Spring Boot或类似的框架,因为Spring Boot常使用内嵌的Tomcat来运行Web应用程序。 4. *...

    spring 3.2.8 jar包

    6. **Web服务**:Spring 3.2.8提供了对SOAP和RESTful Web服务的支持,包括客户端和服务器端的实现。 7. **JSR-303/JSR-349 Bean Validation**:集成Bean Validation标准,允许开发者在JavaBeans中定义验证规则,并...

    java的30个学习目标

    - 使用AspectJ、AspectWerkz等框架增强代码,实现日志记录、事务管理等横切关注点。 #### 24. **日志(Logging)和调度(Scheduling)** - Log4J用于日志记录,Quartz用于任务调度。 #### 25. **网络通信(JGroups)**...

    Spring 相关jar包简介 (spring 的包)

    13. **spring-instrument.jar**:提供了类加载器的工具和接口,主要用于服务器端的应用,如Tomcat,提升类的加载和监控能力。 14. **spring-amqp.jar**:提供了对AMQP(Advanced Message Queuing Protocol)的消息...

    sdp.1.0.1.zip

    1. `startup.bat`:这是一个批处理脚本,通常用于启动SDP1.0.1的服务器端服务,使得工具能够运行在本地环境。 2. `sdp.mv.db`:这可能是SDP的主数据库文件,用于存储项目信息、用户设置等关键数据,可能是基于H2...

    Spring框架的所有jar包

    12. **spring-instrument.jar**:提供了类装载器工具,主要用于服务器端的类装载器增强,如Tomcat等。 13. **spring-test.jar**:包含了测试支持类,方便进行单元测试和集成测试,与JUnit和其他测试框架配合使用。 ...

    Spring MVC框架的各种依赖包下载

    6. **JSP和Servlet API**:Spring MVC依赖于Servlet容器(如Tomcat、Jetty)来运行,因此需要servlet-api和jsp-api的jar包,通常由Web应用服务器提供,但有时也需要在项目中显式声明。 7. **Jackson或Gson**:用于...

    spring-framework-2.0-m1-with-dependencies.rar

    6. **Instrumentation**:提供了类加载器和代理相关的工具,主要用于服务器端的部署。 二、Spring 2.0-M1 特性 Spring 2.0-M1是一个里程碑版本,引入了多项改进和新特性: 1. **改进的DI**:引入了基于注解的依赖...

    Java高手的25个学习要点.txt

    日志框架如Log4J可以帮助开发者记录应用程序运行过程中的关键信息,便于调试和监控。此外,还有许多其他有用的工具库,如Quartz(用于调度任务)、JGroups(用于集群通信)等。 #### 20. 使用主流的Java集成开发...

    最新spring3.0 源码(一)

    `org.springframework.instrument`和`org.springframework.instrument.tomcat`模块用于类加载器级别的字节码操作,通常在服务器端JVM上用于性能监控和优化。例如,这些模块可以用来在运行时对类进行增强,以便于收集...

    spring必要jar包

    16. **spring-instrument-4.2.6.RELEASE.jar**:提供了类加载器层面的工具,主要用于服务器端应用,如Tomcat。 17. **spring-instrument-tomcat-4.2.6.RELEASE.jar**:针对Tomcat的特定类加载器工具,增强Spring在...

    互联网高频Java后端面试题20道(适合1~3年)V1.0.96.docx

    - **内嵌式服务器**:支持内嵌Tomcat、Jetty等服务器,无需额外部署。 **优势**: - **简化开发**:开箱即用,大幅减少配置工作。 - **提高开发效率**:快速构建并启动项目。 - **易于集成**:支持多种技术和框架,...

    java的28个学习目标

    熟悉Java Bean组件模型,了解其在JSP和服务器端的应用。 ### 5. 数据库连接与持久化 精通Java数据库连接(JDBC)API,了解不同的持久化/ORM(对象关系映射)框架如Hibernate、JDO、CocaBase、TopLink、iBatis等。...

    spring3.1包名解析

    9. `org.springframework.instrument.tomcat-3.1.0.M1.jar`: 专门针对Tomcat服务器的类加载器工具,用于服务器端的代理和性能优化。 10. `org.springframework.instrument-3.1.0.M1.jar`: 提供了对服务器的代理接口...

    Panaderia

    "Panaderia" 可能使用Spring Boot来快速构建服务,因为它简化了配置并提供了内置的Tomcat服务器。此外,Spring Data JPA可能用于数据库操作,Spring MVC可能用于构建Web界面。 4. **数据库连接**:面包店管理通常...

Global site tag (gtag.js) - Google Analytics