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

spring3-基于注解的AOP

 
阅读更多

要点:

1.aop的概念真的很多。。。其实从使用出发无非两点:1,定义要拦截的方法,2,实现拦截后的操作方法。

 

2.基于注解的@Aspect需要配合bean声明来用,不然不报错,不执行。。官方doc貌似没提倒。

 

3. 注入的bean对象,访问其属性需要生成get/set方法, 如果直接访问也会出现空指针。

@Autowired private MemCacheService memCacheService;
//报空指针
memCacheService.memcachedClient.set();
//下面方法ok
memCacheService.getMemcachedClient().set()   

 

4.极有可能导致基于注解的bean嵌套bean产生NullPointerException

 

 https://jira.springsource.org/browse/SPR-10594

https://jira.springsource.org/browse/SPR-6992?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel

@Component
@Aspect

 

具体做法示例代码如下:1.execution**指定拦截service包,2.@@Around说明在方法前后拦截。 详细说明可以参考附录文档

 

@Component
@Aspect
public class ServiceAdvice {
	Logger log = Logger.getLogger(ServiceAdvice.class);
	/**
	 * 统一的函数耗时统计;返回结果打印
	 * @param pjp
	 * @return
	 * @throws Throwable
	 */
	@Around("execution(* com.xx.service.*.*(..))")
	public Object doBasicProfiling(ProceedingJoinPoint pjp) throws Throwable {
		// start stopwatch
		StopWatch watch = new StopWatch(pjp.toShortString());
		watch.start();
		Object retVal = pjp.proceed();
		watch.stop();
		log.info("#####  return #######"+LoggerHelper.ObjectComposer(retVal));
		log.info("#####  StopWatch #######"+watch.shortSummary());
		return retVal;
	}
}

 

 

 

 

参考资料:

1.http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/aop.html  官方doc,永远最有用

2.http://sishuok.com/forum/blogPost/list/2472.htmlAOP 之 6.5 AspectJ切入点语法详解  最详细的aop表达式说明。

分享到:
评论

相关推荐

    基于注解实现SpringAop

    基于注解实现SpringAop基于注解实现SpringAop基于注解实现SpringAop

    spring aop注解方式、xml方式示例

    下面将详细介绍Spring AOP的注解方式和XML配置方式。 ### 注解方式 #### 1. 定义切面(Aspect) 在Spring AOP中,切面是包含多个通知(advisors)的类。使用`@Aspect`注解标记切面类,例如: ```java @Aspect ...

    spring-aop-jar

    "spring-aop-jar"这个主题涉及到Spring框架中的核心组件之一——Spring AOP。这里我们将深入探讨Spring AOP、相关jar文件以及它们在实际开发中的作用。 首先,我们来看一下提供的文件: 1. aopalliance.jar:这是一...

    spring-boot aop

    默认情况下,Spring使用基于Java的代理,但对于需要在静态方法或非Spring管理对象上应用AOP的情况,可能需要使用CGLIB或AspectJ字节码代理。 5. **理解代理行为**:理解Spring AOP代理的工作方式很重要,因为这可能...

    spring----AOP实现

    Spring AOP实现详解 在Java开发中,Spring框架以其强大的功能和灵活性被广泛使用,而AOP(面向切面编程)则是Spring框架的一个重要特性。AOP为开发者提供了一种处理横切关注点的新方法,使得代码更加模块化,提高了...

    SSM整合-用springaop-demo01实现了注解AOP,SSM-MybatisOneForOne-demo01实现了

    - **注解AOP**:在`springaop-demo01`中,使用了注解来声明切面。比如`@Aspect`定义一个切面类,`@Before`、`@After`、`@Around`、`@Pointcut`等注解用于定义通知(Advice)和切入点(Pointcut)。 - **配置AOP**...

    开源框架spring详解-----AOP的深刻理解

    AspectJ是一种更强大的AOP实现,它不仅支持Spring的注解驱动的AOP,还可以进行编译时织入和加载时织入,提供了更灵活的切点表达式,可以精确地指定何时何地应用切面。Spring可以通过AspectJ的编译工具或 weaving ...

    草稿:SSM整合-用springaop-demo01实现了注解AOP,SSM-MybatisOneForOne-demo01实现

    我们将详细探讨在"springaop-demo01"中实现的注解AOP以及"SSM-MybatisOneForOne-demo01"中的MyBatis一对一映射。 首先,让我们深入了解一下注解AOP在"springaop-demo01"中的应用。AOP(面向切面编程)是Spring框架...

    2023版全新SSM框架实战精讲 视频教程 下载下载 因为太大存百度云盘3.zip

    054-spring-aop-注解方式总结.mp4 055-spring-aop-xml配置aop.mp4 056-spring-aop-对组件管理影响和总结.mp4 057-spring-tx-编程式和声明式事务理解.mp4 058-spring-tx-事务管理器和原理.mp4 059-spring-tx-...

    2023版全新SSM框架实战精讲 视频教程 下载下载 因为太大存百度云盘4.zip

    054-spring-aop-注解方式总结.mp4 055-spring-aop-xml配置aop.mp4 056-spring-aop-对组件管理影响和总结.mp4 057-spring-tx-编程式和声明式事务理解.mp4 058-spring-tx-事务管理器和原理.mp4 059-spring-tx-...

    2023版全新SSM框架实战精讲 视频教程 下载下载 因为太大存百度云盘2.zip

    054-spring-aop-注解方式总结.mp4 055-spring-aop-xml配置aop.mp4 056-spring-aop-对组件管理影响和总结.mp4 057-spring-tx-编程式和声明式事务理解.mp4 058-spring-tx-事务管理器和原理.mp4 059-spring-tx-...

    2023版全新SSM框架实战精讲 视频教程 下载下载 因为太大存百度云盘1.zip

    054-spring-aop-注解方式总结.mp4 055-spring-aop-xml配置aop.mp4 056-spring-aop-对组件管理影响和总结.mp4 057-spring-tx-编程式和声明式事务理解.mp4 058-spring-tx-事务管理器和原理.mp4 059-spring-tx-...

    spring-aop注解jar包

    spring-aop注解用到的jar包,解压后直接导入即可使用。

    day39-Spring 06-Spring的AOP:带有切点的切面

    3. **启用AOP**:为了使Spring识别并处理切面,我们需要在配置中启用AOP代理。在Java配置中,可以添加`@EnableAspectJAutoProxy`注解;在XML配置中,使用<aop:aspectj-autoproxy>元素。 4. **源码分析**:了解...

    Spring-Struts-IBatis-AOP-Transaction

    在 "17-Prj-Spring-Struts-IBatis-AOP-Transaction" 这个项目中,这四个框架被集成在一起,形成一个强大的 web 应用开发解决方案。Spring 作为整个系统的基石,负责依赖注入和事务管理;Struts 2 处理 HTTP 请求,...

    使用Spring的注解方式实现AOP的细节

    以上就是Spring注解方式实现AOP的一些核心细节。通过这种方式,我们可以方便地在不修改原有代码的情况下,为服务添加额外的功能,实现代码的解耦和复用。不过,需要注意的是,过度使用AOP可能会导致代码可读性和可...

    ssm-spring-security-Aop.zip

    【标题】"ssm-spring-security-Aop.zip" 涉及的核心技术是Spring Security与AOP在SSM(Spring、SpringMVC、MyBatis)框架中的集成应用,主要目的是实现安全登录功能并利用AOP进行日志记录并存入数据库。 【描述】...

    SpringBoot-自定义注解AOP实现及拦截器示例

    在Spring Boot框架中,自定义注解和AOP(面向切面编程)是两种强大的工具,可以帮助我们实现灵活...在提供的"SpringBoot-自定义注解AOP实现及拦截器示例代码"中,你可以找到具体的实现细节,进一步学习和实践这些概念。

    spring-nested-aop.zip_aop_spring aop

    例如,我们可以看到使用`<aop:config>`标签来定义切面,`<tx:annotation-driven>`来启用基于注解的事务管理。 ```xml <aop:config> <aop:aspect id="transactionAspect" ref="transactionManager"> <!-- 定义...

Global site tag (gtag.js) - Google Analytics