`
lipsion
  • 浏览: 15239 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Spring3 aop aspectj 打印日志

 
阅读更多
Spring3 aop  aspectj  打印日志
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd"
       default-lazy-init="true">

	<!-- Activates scanning of @Service -->
    <context:component-scan base-package="com.xiu.search.core">
    	<context:include-filter type="regex" expression=".util"/>
    </context:component-scan>
   <!--   
    <bean id="logInteceptor" class="com.xiu.search.web.util.LogInteceptor"></bean>
    <aop:config>
         <aop:aspect id="b" ref="logInteceptor">
         <aop:pointcut id="log" expression="execution(* com.xiu.search.core.*.*(..))"/>
         <aop:pointcut id="log" expression="execution(* com.xiu.search.core.*.*.*(..))"/>
         <aop:before pointcut-ref="log" method="before"/>
         <aop:after pointcut-ref="log" method="after"/>
         </aop:aspect>
    </aop:config>
  --> 
    <aop:aspectj-autoproxy/>
</beans>

import org.apache.log4j.Logger;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

@Aspect  
@Component 
public class LogInteceptor {
	private Logger logger = Logger.getLogger(getClass());
	
        /**
         * 拦截类的入口
         */
	@Pointcut("execution(* com.xiu.search.core.bof.impl.BrandBoImpl(..))")
	public void pointCut() {
		logger.info("ponit....");
	}
	
	@Before("pointCut()")
	public void before() {
		logger.info("被拦截方法调用之前调用此方法,输出此语句");
	}

	@After("pointCut()")
	public void after() {
		logger.info("被拦截方法调用之后调用此方法,输出此语句");
	}
	
	@Around("pointCut()")
    public Object doBasicProfiling(ProceedingJoinPoint pjp) throws Throwable{
        System.out.println("开始环绕通知");//前置通知后执行
        pjp.getArgs();//拦截类的入参数
        pjp.getTarget();//拦截类
        Object obj=pjp.proceed();//此处返回的是拦截的方法的返回值,如果不执行此方法,则不会执行被拦截的方法,利用环绕通知可以很好的做权限管理
        System.out.println(obj+"结束环绕通知");//后置通知后、最后通知前执行
        return obj;
    }
	
}
分享到:
评论
1 楼 zhaoshijie 2012-11-20  
请问  直接这样
ClassPathXmlApplicationContext beanApp = new ClassPathXmlApplicationContext(
                "applicationContext.xml");

可以拦截到目标对象的方法 ,但是 对于web项目在web.xml中加载spring配置文件是就拦截不到呢? 你遇到这个问题了吗?如果知道的话 请加我QQ:619370209,麻烦告诉下 谢谢...

相关推荐

    jar包---Spring Aop AspectJ新增包.rar

    在Spring AOP和AspectJ的场景中,MyBatis的ORM能力可以和AOP结合,例如,我们可以在数据访问操作前后添加事务管理和日志记录等切面。 总的来说,"jar包---Spring Aop AspectJ新增包.rar"提供的库文件可以帮助开发者...

    aspectj的jar spring使用aop需要的jar

    在Spring框架中,面向切面编程(AOP)是一种强大的设计模式,它允许开发者定义“横切关注点”,如日志、事务管理、安全性等,这些关注点可以被解耦并独立于业务逻辑进行处理。AspectJ是Java平台上的一个开源AOP框架...

    Spring AOP + AspectJ annotation example

    在IT行业中,Spring框架是Java企业级应用开发的首选,而Spring AOP(面向切面编程)...在压缩包文件`Spring3Example`中,可能包含了一些关于Spring AOP和AspectJ注解的示例代码,这将有助于进一步理解和实践这些概念。

    Spring的AOP依赖包-AspectJ

    而AspectJ是Java平台上的一个开源项目,提供了一种强大的、类型安全的AOP解决方案,它能够与Spring框架完美结合,增强Spring的AOP功能。 首先,我们需要理解AOP的核心概念。切面(Aspect)是关注点的模块化,这些...

    SpringAOP+AspectJ

    **Spring AOP与AspectJ详解** 在现代软件开发中,面向切面编程(Aspect-Oriented Programming,简称AOP)是一种强大的设计模式,它允许我们分离关注点,将横切关注点(如日志、事务管理、权限控制等)与核心业务...

    Spring AOP @AspectJ 入门实例

    在IT行业中,Spring框架是Java企业级应用开发的首选,而Spring AOP(面向切面编程)则是其核心特性之一,用于实现横切关注点的模块化,如日志、事务管理等。本实例将带你深入理解并实践Spring AOP与@AspectJ的结合...

    Spring Aop之AspectJ注解配置实现日志管理的方法

    Spring Aop之AspectJ注解配置实现日志管理的方法 Spring Aop是基于AspectJ实现的面向切面编程(AOP),它提供了一个灵活的方式来实现日志管理。通过使用AspectJ注解,可以轻松地实现日志记录、性能监控、安全检查...

    spring-aop-jar

    总结起来,"spring-aop-jar"涉及了Spring框架中的面向切面编程模块,包括Spring AOP和AspectJ的集成。通过理解和熟练使用这些组件,开发者可以有效地解耦关注点,提高代码的可维护性和可扩展性。在实际项目中,结合...

    Spring AOP + AspectJ in XML 配置示例

    这篇博客“Spring AOP + AspectJ in XML配置示例”旨在指导开发者如何在XML配置中实现Spring AOP和AspectJ的结合。 首先,我们需要理解AOP的基本概念。AOP通过将关注点(如日志、事务管理)与业务逻辑分离,提高了...

    Spring2.5使用AOP需要的aspectJ

    在Spring 2.5版本中,面向切面编程(AOP)是一个强大的功能,它允许开发者定义“切面”来封装横切关注点,如日志、事务管理、权限检查等,使得代码更加模块化和可重用。AspectJ是一个成熟的AOP框架,Spring在其AOP...

    Spring AOP 概念理解及@AspectJ支持

    Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的一个重要组成部分,它允许我们通过定义“切面”来模块化横切关注点,比如日志、事务管理、性能监控等。在传统的面向对象编程中,这些关注点...

    征服Spring AOP—— @AspectJ

    在IT行业中,Spring框架是Java企业级应用开发的首选,而Spring AOP(面向切面编程)则是其核心特性之一,用于实现横切关注点的模块化,如日志、事务管理等。@AspectJ是Spring AOP的一种注解驱动方式,它极大地简化了...

    spring AspectJ aop学习

    当我们谈论"spring AspectJ aop学习"时,我们将深入探讨Spring AOP如何结合AspectJ来实现更灵活的模块化和解耦。 首先,让我们理解AOP的概念。面向切面编程(Aspect Oriented Programming)是一种编程范式,旨在将...

    spring-aop-aspectj-case

    在Spring框架中,AOP用于处理系统中的横切关注点,如日志、事务管理等,而AspectJ则是一个强大的、独立的面向切面编程语言,可以更灵活地定义切面和通知。 描述中提到的博文链接虽然没有具体内容,但通常博主会分享...

    spring-boot aop

    在Spring框架中,AOP主要用于日志记录、事务管理、性能统计等场景。本示例是关于如何在Spring Boot项目中实现AOP功能的一个简单演示。 首先,我们需要了解AOP的基本概念。AOP的核心是切面(Aspect),它封装了跨越...

    spring boot aop 统一处理日志

    在Spring Boot应用中,AOP(面向切面编程)是一种强大的工具,用于实现代码的解耦和模块化,尤其适用于处理横切关注点,如日志记录、事务管理、安全控制等。本教程将深入探讨如何利用Spring Boot的AOP特性来实现日志...

    Spring 使用AspectJ 实现 AOP

    在Spring中,我们可以使用AspectJ来实现AOP,AspectJ是一个强大的AOP框架,它可以与Spring无缝集成,提供更细粒度的控制。 首先,让我们了解一下AOP中的通知类型: 1. **前置通知**(Before Advice):在目标方法...

    spring AOP 切面日志 分层打日志

    在Spring框架中,AOP(面向切面编程)是一种强大的工具,它允许我们在不修改源代码的情况下,对程序进行横向关注点的插入,比如日志记录、事务管理、权限检查等。在这里,我们重点关注如何利用Spring AOP实现分层...

    spring对AOP的支持(使用AspectJ进行AOP演示)

    Spring 提供了两种主要的 AOP 实现方式:基于代理的和基于 AspectJ 的。基于代理的方式是 Spring 默认的实现,它通过 JdkDynamicProxy 或 CGLIB 创建代理对象来实现切面。而基于 AspectJ 的方式则更为强大,它允许...

    Spring使用AOP的三个jar包

    1.0.0.jar`是AOP联盟提供的一个接口库,它定义了一些通用的AOP接口,比如`org.aopalliance.intercept.MethodInterceptor`和`org.aopalliance.intercept.MethodInvocation`,使得不同的AOP框架(如Spring和AspectJ)...

Global site tag (gtag.js) - Google Analytics