`

Spring AOP annotation 用环绕通知写日志

 
阅读更多
package com.mhm.mng.impl;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

@Component
@Aspect
public class LogAOP {

	//声明切入点
	@Pointcut("execution(* com.mhm.mng.impl..*.*(..))")
	public void anyMethod(){};
	
	
	private void logbefore(Class clazz, String mName) {
		System.out.println(clazz.getName() + "." + mName + "()开始");
	}
	private void logend(Class clazz, String mName) {
		System.out.println(clazz.getName() + "." + mName + "()结束");
	}
	
	
	//环绕通知
	@Around("anyMethod()")
	public Object doprocess(ProceedingJoinPoint pjp) throws Throwable {
		logbefore(pjp.getTarget().getClass(), pjp.getSignature().getName());
		Object o = pjp.proceed();
		logend(pjp.getTarget().getClass(), pjp.getSignature().getName());
		return o;
	}
	
}



package com.mhm.spring.mng.impl;


import org.junit.AfterClass;

public class PersonMngImplTest {

	
	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
		
	}

	@Test
	public void save() {
		try{
			ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
			PersonMng personMng = (PersonMng)context.getBean("personMngImpl");
			personMng.save("aa");
			//personMng.get(1);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	@AfterClass
	public static void tearDownAfterClass() throws Exception {
	}

}

分享到:
评论

相关推荐

    spring aop 实现源代码--xml and annotation(带lib包)

    在Spring1.2或之前的版本中,实现AOP的传统方式就是通过实现Spring的AOP API来定义Advice,并设置代理对象。Spring根据Adivce加入到业务流程的时机的不同,提供了四种不同的Advice:Before Advice、After Advice、...

    spring aop 读写分离

    在IT行业中,Spring AOP(面向切面编程)是一种强大的工具,它允许我们在不修改代码的情况下,添加额外的功能,如日志记录、事务管理、安全控制等。在"spring aop 读写分离"的场景下,我们主要关注如何利用Spring ...

    spring-aop demo及junit测试

    1. **基于XML的配置**:这是Spring AOP的传统配置方式,需要在Spring的配置文件中声明切入点表达式、定义通知类型(前置、后置、环绕等)以及组装切点和通知。以下是一个简单的示例: ```xml <aop:config> <!-- ...

    springBoot+mybatis读写分离(AOP)

    AOP则是Spring框架的核心特性,用于在不修改原有代码的情况下,对特定行为(如日志记录、权限检查等)进行横切关注。 在Spring Boot项目中,我们可以通过AOP来实现读写分离。首先,我们需要定义两个数据源,一个...

    Spring使用AspectJ注解和XML配置实现AOP

    通知(Advice)是在特定切点执行的动作,如环绕通知、前置通知、后置通知等。织入(Weaving)是将切面应用到目标对象,创建一个代理对象的过程。 在Spring中,AspectJ提供了一种使用注解来声明切面的方法。以下是一...

    spring boot 使用Aop通知打印控制器请求报文和返回报文问题

    Spring Boot 使用 AOP 通知打印控制器请求报文和返回报文问题 本文主要介绍了如何使用 Spring Boot 的 AOP 框架来打印控制器请求报文和返回报文,解决了开发过程中需要写许多重复代码的问题。 一、简介 在开发...

    IDEA中使用Spring的简单入门(加小案例)

    此外,Spring AOP用于实现跨切面关注点,如日志、事务管理等。你可以在方法上添加`@Transactional`注解,使该方法执行在一个数据库事务中。 Spring Boot简化了Spring应用的开发,通过自动配置和启动器简化了许多...

    AOP入门

    4. **环绕通知(Around Advice)**:包裹整个目标方法,可以在方法调用前后自定义行为,并控制是否执行目标方法。 5. **最终通知(After (Finally) Advice)**:无论目标方法是否正常执行或抛出异常,都会执行。 ...

    aop方式实现数据库读写分离

    AOP是Spring框架的一个核心特性,它允许我们在不修改原有业务代码的情况下,插入额外的功能(如日志记录、事务管理、安全性检查等)。AOP通过定义切面(Aspect)和通知(Advice)来实现,切面定义了关注点的模块化,...

    springboot+mybatis多数据源,aop动态切换

    SpringBoot简化了Spring框架的初始设置和配置,而MyBatis则是一个轻量级的持久层框架,它将SQL与Java代码紧密结合起来,提供了灵活的数据访问能力。本项目涉及的主题是“springboot+mybatis多数据源,aop动态切换”...

    基于Annotation的Struts2.0+Hibernate3.3+Spring2.5图文教程整合开发.doc

    这篇文档主要介绍了一个使用注解(Annotation)进行Struts2.0、Hibernate3.3和Spring2.5整合开发的教程。这种集成方式相比传统的XML配置,可以简化配置过程,提高开发效率。以下是各个框架及注解技术在教程中的应用: ...

    mybatis、ibatis、spring各种整合方式

    - Spring AOP可以用来实现通用的日志记录、性能监控等功能,只需编写一次切面代码,就能在所有MyBatis的DAO操作上生效。 **5. Spring Boot与MyBatis的整合:** - Spring Boot简化了Spring应用的初始搭建以及配置,...

    Spring 与Ehcache实现基于方法的缓存

    首先,我们需要理解Spring的AOP概念,AOP允许我们定义横切关注点,如日志、事务管理或,正如在这个案例中,缓存管理。Spring通过代理模式实现了AOP,可以自动在目标方法调用前后执行特定的逻辑,这为我们实现方法...

    Spring+Struts+ibatis下配置数据读写分离及事务(一)

    例如,使用Spring的AOP来统一处理异常,使用Log4j或Logback进行日志记录。 总之,Spring+Struts+iBATIS的组合可以构建出高效、灵活的企业级应用。通过对事务管理和数据读写分离的合理配置,我们可以优化系统的性能...

    spring+struts+ibatis用到的配置文件模板

    3. `<aop:config>`:配置AOP相关规则,如切点、通知等。 4. `<tx:annotation-driven>`:启用基于注解的事务管理。 二、Struts2框架配置文件(struts.xml) Struts2是MVC设计模式的实现,它的配置文件主要处理请求...

    Spring知识整理

    - **写 Spring 的配置文件**:使用 Spring 来管理 Hibernate 的 SessionFactory。 - **添加 Spring 的事务管理配置**:配置事务管理器和事务规则。 - **使用 HibernateTemplate**:Spring 提供了 ...

    java多数据源自动切换

    AOP是Spring框架的一个重要特性,它允许程序员定义“切面”,这些切面包含了横切关注点,如日志、事务管理等。在运行时,Spring会自动将这些切面织入到目标对象的方法调用中,从而简化代码并提高可维护性。 在多...

    java(spring boot)自定义注解

    Spring Boot以其模块化、自动化配置和开箱即用的功能受到广大开发者喜爱。在这个特定的场景中,我们探讨的是如何在Spring Boot应用中自定义注解,以及如何利用这个注解进行系统监控的开发。 首先,让我们理解什么是...

    spring hibernate 参考手册.rar

    - **AOP(面向切面编程)**:提供声明式事务管理,以及日志、性能监控等功能,让代码更专注于业务逻辑。 - **Spring MVC**:Spring提供的Web MVC框架,用于构建基于HTTP的Web应用,支持RESTful风格。 2. **...

Global site tag (gtag.js) - Google Analytics