Files
springboot-demo/target/classes/com/example/demo/aop/RateLimitAspect.class

23 lines
4.0 KiB
Plaintext
Raw Normal View History

<EFBFBD><EFBFBD><EFBFBD><EFBFBD>=<00>
 java/lang/Object<init>()V&java/util/concurrent/ConcurrentHashMap
  $com/example/demo/aop/RateLimitAspect requestCountsLjava/util/Map;   lastResetTime  $org/aspectj/lang/ProceedingJoinPoint getSignature()Lorg/aspectj/lang/Signature;  org/aspectj/lang/Signature toShortString()Ljava/lang/String;
!" #$java/lang/SystemcurrentTimeMillis()J &'( )* java/util/Mapget&(Ljava/lang/Object;)Ljava/lang/Object;,java/lang/Long
+. /$ longValue<00>`3&java/util/concurrent/atomic/AtomicLong
25 6(J)V &8 9:put8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+< =>valueOf(J)Ljava/lang/Long;
2@ A$incrementAndGetdEjava/lang/RuntimeExceptionG1请求过于频繁请稍后再试 (Rate Limit)
DI J(Ljava/lang/String;)V L MNoutLjava/io/PrintStream;P QRmakeConcatWithConstants'(Ljava/lang/String;J)Ljava/lang/String;
TUV WJjava/io/PrintStreamprintln Y Z[proceed()Ljava/lang/Object;] ^_accept0(Ljava/util/Map;)Ljava/util/function/BiConsumer; &a bcforEach"(Ljava/util/function/BiConsumer;)V
2e )$ SignatureKLjava/util/Map<Ljava/lang/String;Ljava/util/concurrent/atomic/AtomicLong;>;3Ljava/util/Map<Ljava/lang/String;Ljava/lang/Long;>;MAX_REQUESTS_PER_MINUTEJ ConstantValueCodeLineNumberTableLocalVariableTablethis&Lcom/example/demo/aop/RateLimitAspect;enforceRateLimit:(Lorg/aspectj/lang/ProceedingJoinPoint;)Ljava/lang/Object; joinPoint&Lorg/aspectj/lang/ProceedingJoinPoint;
methodNameLjava/lang/String; currentTime lastResetLjava/lang/Long;count(Ljava/util/concurrent/atomic/AtomicLong; currentCount StackMapTablejava/lang/String
Exceptions<00>java/lang/ThrowableMethodParametersRuntimeVisibleAnnotations$Lorg/aspectj/lang/annotation/Around;value-@annotation(com.example.demo.aop.RateLimited)getRateLimitStatus()Ljava/util/Map;statusLocalVariableTypeTable5()Ljava/util/Map<Ljava/lang/String;Ljava/lang/Long;>;lambda$getRateLimitStatus$0L(Ljava/util/Map;Ljava/lang/String;Ljava/util/concurrent/atomic/AtomicLong;)Vkv
SourceFileRateLimitAspect.java$Lorg/aspectj/lang/annotation/Aspect;*Lorg/springframework/stereotype/Component;+Lorg/springframework/core/annotation/Order;BootstrapMethods<00>
<00><00><00> Q<00>$java/lang/invoke/StringConcatFactory<00>(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;<00>%[AOP-RateLimit]  当前计数: /100<00>
<00><00><00> <00><00>"java/lang/invoke/LambdaMetafactory metafactory<00>(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;<00>'(Ljava/lang/Object;Ljava/lang/Object;)V<00>
<00> <00><00><00>=(Ljava/lang/String;Ljava/util/concurrent/atomic/AtomicLong;)V InnerClasses<00>%java/lang/invoke/MethodHandles$Lookup<00>java/lang/invoke/MethodHandlesLookup! fgfhijkBlM*<2A>*<2A>Y<> <09>
*<2A>Y<> <09><10>mn opqrl> <00>+<2B><00>M<>B*<2A>,<2C>%<00>+:<05>!<05>-e0<><30>%*<2A>
,<2C>2Y <09>4<>7W*<2A>,!<21>;<3B>7W*<2A>
,<2C>%<00>2:<06>?7B<><42> <0A>DYF<>H<><48>K,<07>O<00>S+<2B>X<00>m2 & (),2-E.T1c2j4s5}8<00>;nH<00>op<00>st <00>uv<00>wjsxyc/z{j(|j}<03>2~+!<21>(2<00><00><00>s<00> <00><00>s<00><00><00>lg<19>Y<> L*<2A>
+<2B>\<00>`+<2B>mBCDnop<00><00> <00>hf<00>
<00><00>lN*+,<2C>d<>;<3B>7W<>mCn <00><00>v<00>{<00><00><00><00><00><00><00>I<00><00><00><00><00><00><00><00><00>
<00><00><00>