content: package org.jeecg.boot.starter.lock.annotation;
  
  import org.jeecg.boot.starter.lock.enums.LockModel;
  
  import java.lang.annotation.*;
  
  /**
   * Redisson分布式锁注解
   *
   * @author zyf
   * @date 2020-11-11
   */
  @Target({ElementType.TYPE, ElementType.METHOD})
  @Retention(RetentionPolicy.RUNTIME)
  @Documented
  @Inherited
  public @interface JLock {
  
      /**
       * 锁的模式:如果不设置,自动模式,当参数只有一个.使用 REENTRANT 参数多个 MULTIPLE
       */
      LockModel lockModel() default LockModel.AUTO;
  
      /**
       * 如果keys有多个,如果不设置,则使用 联锁
       * @return
       */
      String[] lockKey() default {};
  
      /**
       * key的静态常量:当key的spel的值是LIST,数组时使用+号连接将会被spel认为这个变量是个字符串
       * @return
       */
      String keyConstant() default "";
  
  
      /**
       * 锁超时时间,默认30000毫秒
       *
       * @return int
       */
      long expireSeconds() default 30000L;
  
      /**
       * 等待加锁超时时间,默认10000毫秒 -1 则表示一直等待
       *
       * @return int
       */
       long waitTime() default 10000L;
  
      /**
       * 未取到锁时提示信息
       *
       * @return
       */
      String failMsg() default "获取锁失败，请稍后重试";
  }
  