What kind of change does this PR introduce? (check at least one)

  • Bugfix
  • Feature
  • Code style
  • Refactor
  • Doc
  • Other, please describe:

The description of the PR:

优化LockExecutor

Other information:

  • 原有的LockExecutorFactory在执行buildExecutor方法时每次都进行new一个Executor。
  • @Lock4j注解中的client和type都只能从枚举中进行选择,如果要实现自己的锁客户端和类型无法进行扩展。LockType目前只支持Redisson,如果要支持其他锁无法进行拓展。
  • 让spring容器来进行管理LockExecutor,通过@Lock4j上的注解来进行获取具体哪一个Executor来进行执行。新增LockExecutorSelector来自定义实现@Lock4j中的client与type关系。