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

在应用AOP缓存方法执行的结果中遇到的问题,请指点

AOP 
阅读更多

假设有一个方法
public int A()
{
   return 1;
}
Aspect中的代码大至如下,(下面的这代码是粘自别人的,因为我用的WebSharp不太一样)
public class PrinterInterceptor :IMethodInterceptor

   10     {

   11         public object Invoke(IMethodInvocation invocation)

   12         {

 

   18             如果不存在缓存则调用方法体

   19             object returnVal = invocation.Proceed();

                    并将结果缓存,否则直接从缓存中取得值并返回

   23 

   24             return returnVal;

   25         }

   26     }
现在我有一个困惑是,如果施加在这个方法上的Aspect不止一个,那么方法体不是会执行多次吗?
还请指点

分享到:
评论

相关推荐

    Java利用spring aop进行监测方法执行耗时

    安全性高:使用 Spring AOP 进行方法耗时监测,可以在不修改业务逻辑代码的情况下,对业务方法进行耗时监测;避免了因为在业务代码中加入计时逻辑而导致的安全风险。 3. 可扩展性强:使用 Spring AOP 进行方法耗时...

    Asp.net Core 3.1基于AspectCore实现AOP实现事务、缓存拦截器功能

    AOP的概念也很好理解,跟中间件差不多,说白了,就是我可以任意地在方法的前面或后面添加代码,这很适合用于缓存、日志等处理。 在net core2.2时,我当时就尝试过用autofac实现aop,但这次我不想用autofac,我用了一...

    Spring AOP+ehCache简单缓存系统解决方案

    在本篇【Spring AOP+ehCache简单缓存系统解决方案】中,我们将探讨如何利用Spring AOP(面向切面编程)和ehCache框架来构建一个高效、简单的缓存系统,以提升应用程序的性能。ehCache是一款流行的开源Java缓存库,它...

    SpringAOP结合ehCache实现简单缓存实例

    3. **创建缓存注解**:在Spring AOP中,我们可以创建一个自定义注解来标记需要缓存的方法。例如,创建一个名为`@Cacheable`的注解: ```java @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) ...

    spring aop 自定义缓存实现

    对于缓存,我们通常使用`@Around`,因为它可以控制方法的执行流程,包括是否从缓存中获取结果,或者在结果计算后存入缓存。 以下是一个简单的自定义缓存切面示例: ```java @Aspect @Component public class ...

    使用spring aop对web 应用数据进行memcached缓存

    - `@CachePut`则是在执行方法后将结果放入缓存,即使缓存中已存在对应键的值。 4. **具体实现步骤**: - 添加Memcached客户端库(如spymemcached)到项目依赖。 - 配置Memcached服务器连接,包括主机地址、端口...

    Spring AOP应用

    在Spring AOP中,切面通常由一个或多个通知(advice)组成。 2. **通知(Advice)**:通知是在特定连接点(join point)执行的代码,例如方法调用前、后或者异常抛出时。Spring AOP支持五种不同类型的通知:前置...

    redis命令缓存AOP代码

    3. 在通知中,根据注解的配置执行相应的Redis操作,如在方法执行前将结果存入Redis,在方法执行后从Redis中获取结果,或者在特定条件下清除缓存。 项目中的`src`目录可能包含了Java源码文件,其中应该有...

    Spring Aop Advise方法(增强方法) 中获取目标方法的参数

    通过以上知识,我们可以理解如何在Spring AOP中实现Advise,以及如何在Advise中获取和操作目标方法的参数。在实际开发中,这种能力使得我们可以灵活地为系统添加跨切面的监控、日志、事务管理等功能,而无需改动业务...

    Aop记录执行时间.pdf

    在提供的代码片段中,可以看到通过Spring框架提供的AOP注解定义了一个切面LogTimeAspect,该切面通过环绕通知(@Around)记录了目标方法的执行时间。当HTTP请求触发相应的连接点时,日志会记录下请求开始和结束的...

    在自定义spring aop中使用el获取拦截方法的变量值。

    标题中的“在自定义Spring AOP中使用EL获取拦截方法的变量值”指的是在Spring的面向切面编程(AOP)中,通过Expression Language(EL,表达式语言)来访问被拦截方法的局部变量值。这通常涉及到Spring的代理机制、...

    spring 应用aop 实例

    切面是AOP中的一个模块,包含了一组相关的通知,这些通知会在特定的连接点执行。通知定义了在切点匹配时要执行的行为,可以是前置通知、后置通知、异常通知、最终通知和环绕通知。连接点是程序执行的特定点,如方法...

    .net中attribute实现方法调用拦截(就是aop)

    例如,我们可以创建一个`LogAttribute`,在方法上应用这个特性,以便在方法执行前后记录日志。下面是一个简单的示例: ```csharp [AttributeUsage(AttributeTargets.Method)] public class LogAttribute : ...

    利用C#实现AOP常见的几种方法详解

    在C#中,实现AOP的方法多种多样,以下将详细介绍几种常见的实现方式。 1. **静态织入**: 静态织入是在编译时完成的,它通过编译器或者编译插件(如PostSharp)在目标类的代码中插入拦截逻辑。这种方式的优点是...

    springboot+aspect实现springaop拦截指定方法.zip

    在Spring AOP中,切点通常用正则表达式或预定义的注解来指定,例如`@Within("com.example.service.*")`表示拦截com.example.service包下的所有类的所有方法。 4. **通知(Advice)**:通知是在切点匹配的方法执行前...

    Spring AOP应用Demo

    在Spring AOP中,主要有以下几个关键概念: 1. **切面(Aspect)**:定义了一个关注点的所有组件,包括通知(Advice)、切入点(Pointcut)和织入(Weaving)。 2. **通知(Advice)**:在特定连接点(Join Point...

    aop切面拦截单个方法实例

    在实际应用中,我们可以创建一个切面类,比如`LoggingAspect`,其中包含一个`@Before`通知,用于在每个服务方法调用前记录日志。通过配置Spring的AOP配置,我们可以指定哪些类或方法需要被这个切面拦截。这样,无需...

    Spring  AOP实现方法大全

    在`before()`方法中,可以执行预处理操作,如日志记录。如果`before()`方法抛出异常,则目标方法不会执行。 例如,假设我们有一个`MessageSender`接口和一个`HttpMessageSender`实现,我们想在发送消息前记录日志,...

    AOP根据方法名匹配织入

    在AOP中,这些关注点被称为切面,而切面的织入则是将切面应用到目标对象的过程。 在Java世界里,Spring框架是实现AOP最常用的库。"AOP根据方法名匹配织入"指的是通过指定方法名来决定哪些方法应该被切面影响。这种...

Global site tag (gtag.js) - Google Analytics