首页 > 其他分享 >写一个aop ,分布式锁

写一个aop ,分布式锁

时间:2024-07-25 10:57:02浏览次数:13  
标签:MyLock name 一个 lock default aop TimeUnit public 分布式

  1. 先定义一个注解

    @Retention(RetentionPolicy.RUNTIME)
    @Target(ElementType.METHOD)
    public @interface MyLock {
        String name();
        long waitTime() default 0;
        long leaseTime() default -1;
        TimeUnit timeUnit() default TimeUnit.SECONDS;
    }
  2. 再写一个切面

    @Slf4j
    @Aspect
    @Component
    public class MyLockAspect {
        @Around("@annotation(lock)")
        public Object lock(ProceedingJoinPoint pjp, MyLock lock) throws Throwable{
            log.info(lock.name());
            return pjp.proceed();
        }
    }
  3. 然后在要被增强的方法上加上注解

    @MyLock(name="test-redison-lock", leaseTime = 10,timeUnit = TimeUnit.SECONDS)

标签:MyLock,name,一个,lock,default,aop,TimeUnit,public,分布式
From: https://www.cnblogs.com/dragon-proud-sky/p/18322537

相关文章

  • PHP转Go系列 | 推荐一个强大的Go语言工具函数库
    大家好,我是码农先森。从PHP转到Go的朋友,常常会因为没有便捷的工具函数而感到苦恼。PHP写的多了就会形成路径依赖,在写Go的时候时不时就会想到PHP强大的数组函数。当然写Go的PHPer也想拥有这么强大的工具函数,在这个开源的编程世界总有一些伟大的程序员做着贡献,正是有......
  • 农村几大队是什么意思???比如1队 2队 什么的 然后在一个大队的
    农村几大队是什么意思???比如1队2队什么的然后在一个大队的农村几大队是什么意思???比如1队2队什么的然后在一个大队的是有什么亲戚关系吗?...展开  我来答 分享 举报 1个回答#热议# 普通体检能查出癌症吗?系外星系2017-04-09 · TA获得超过3万个赞关注......
  • 如何在Python中从两个不同长度的列表创建DataFrame,为第二个列表中的每个值重复第一个
    我是一个超级初学者,所以请耐心等待。我觉得这应该很容易,但我无法弄清楚。我不确定是否应该创建两个列表,然后将它们组合起来,或者是否有办法以这种方式直接创建DataFrame。我需要一列包含这些值:df=pd.DataFrame({'x1':np.linspace(-2.47,2.69,num=101)})然后我将值A......
  • c#写一个WINFORM的多线程操作
    以下是一个简单的示例,展示了如何在C#WinForms中创建一个按钮的异步事件,并使用Label控件来显示事件执行的时长。首先,确保你已经在你的项目中添加了一个Button和一个Label控件。假设按钮的名称是btnAsync,标签的名称是lblDuration。然后,在你的Form类中,添加以下代码:csh......
  • locust多进程实现分布式压测遇到的问题
    多进程分布式的实现:locust分布式时,需借助命令locust一个一个启动worker,在使用中有点繁琐,下面借助于多进程,按既定worker数量,一键启动;fromlocustimportFastHttpUser,task,User,events,HttpUser#classWebsiteUser(FastHttpUser):错误的使用!!!classWebsiteUser(......
  • 探索惊人假设:我们是否生活在一个巨大黑洞之内?
    想象一下,我们所生活的宇宙,可能隐藏在一个巨大的黑洞之中。这个令人震惊的可能性,值得我们一同深入探讨。黑洞:超乎想象的奇特存在通常,我们认为黑洞是由极其密集的物质构成的,比如将地球压缩至硬币大小。然而,科学家们的研究揭示了一个令人惊讶的事实:大型黑洞的密度其实并不高,甚至......
  • 基于 LangChain+LangGraph 来实现一个翻译项目
    相信大家在看文档的时候,有时会比较苦恼,比如AI相关的文档都是外文,中文文档比较少,看起来会比较吃力,有的时候会看不懂,翻译软件又翻得很乱,完全看不了,今天就基于LangChain和LangGranph将吴恩达博士的一个项目给搬过来。一方面就是为了自己看文档方便点,另一方面也是练练手,用用......
  • 为啥Spring原理中依赖注入之后,再做AOP代理依赖注入将失效
    在java中,依赖注入(DependencyInjection,简称DI)是一种设计模式,它通过将对象的依赖关系从代码中移除,而是通过外部容器来管理和注入依赖。这样可以提高代码的可维护性和可测试性。AOP(Aspect-OrientedProgramming,面向切面编程)是另一种编程范式,它允许开发者在不修改原有代码的情......
  • NOI 2024 ~ 一定有 下一个 诗和远方
    Day-?PKUSC和THUSC都打的还不错,拿了两个一等约。当时在杭州感觉自己都要飘起来了,APIO再拿au可能真的要上天了,于是在群里立下flag:随后正如预期一般拿到了整整115分,收获了OI生涯第一块铜牌。想想去年五哥APIO打铁,最后NOIrk20的事,我认为优势在我。Day-1报到......
  • 在K8S中,容器提供一个服务,外部访问慢,到底是容器网络问题?还是容器服务问题?这种怎么排查?
    在K8S(Kubernetes)中,当容器提供的服务外部访问慢时,可能是由容器网络问题或容器服务问题中的一个或多个因素导致的。为了有效排查这个问题,可以按照以下步骤进行:一、初步排查检查外部访问方式:确认外部是通过哪种方式访问服务的,如LoadBalancer、NodePort、Ingress等。检查相应的......