common-io之Comparator阅读

本文深入解析了多种文件排序策略,包括默认、目录、扩展名、最后修改时间、名称、路径、大小及逆序比较等。每种策略通过具体类实现,并详细解释了其工作原理与应用场景。

1.  首先我们来查看AbstractFileComparator这个抽象类

 首先我们来看一下IO包里面的Comparator,这个都比较好理解,首先是AbstractFileComparator这个类,他提供了两个接口,可以实现对Array和Collection的sort功能。

 

Java代码  收藏代码
  1. <span style="font-size: medium;"><span style="color: #99cc00;">// 实现了对File数组的排序功能  
  2. public File[] sort(File... files) {  
  3.         if (files != null) {  
  4.             Arrays.sort(files, this);  
  5.         }  
  6.         return files;  
  7.     }</span></span>  

  // 实现对collection的排序

Java代码  收藏代码
  1. public List<File> sort(List<File> files) {  
  2.         if (files != null) {  
  3.             Collections.sort(files, this);  
  4.         }  
  5.         return files;  
  6.     }  

 2. CompositeFileComparator类的实现

   这个类的主要意图是使用里面的delegate file comparator来进行File的排序。首先看一下构造函数:

 

Java代码  收藏代码
  1. public CompositeFileComparator(Comparator<File>... delegates) {  
  2.         if (delegates == null) {  
  3.             this.delegates = (Comparator<File>[]) NO_COMPARATORS;//1  
  4.         } else {  
  5.             this.delegates = (Comparator<File>[]) new Comparator<?>[delegates.length];//2  
  6.             System.arraycopy(delegates, 0this.delegates, 0, delegates.length);  
  7.         }  
  8.     }  
 

在构造函数里面如果delegates是null的话,就设置成空的comparators,负责就直接赋值给delegates属性。

 

 

Java代码  收藏代码
  1. public CompositeFileComparator(Iterable<Comparator<File>> delegates) {  
  2.         if (delegates == null) {  
  3.             this.delegates = (Comparator<File>[]) NO_COMPARATORS; //1  
  4.         } else {  
  5.             List<Comparator<File>> list = new ArrayList<Comparator<File>>();  
  6.             for (Comparator<File> comparator : delegates) {  
  7.                 list.add(comparator);  
  8.             }  
  9.             this.delegates = (Comparator<File>[]) list.toArray(new Comparator<?>[list.size()]); //2  
  10.         }  
  11.     }  
 

这个也很好理解,就是为空的时候直接赋个空的comparator,负责的话构造一个ArrayList,遍历Iterator,把结果集放到list里面,然后讲list转化成数组。

 

 

Java代码  收藏代码
  1. public int compare(File file1, File file2) {  
  2.        int result = 0;  
  3.        for (Comparator<File> delegate : delegates) {  
  4.            result = delegate.compare(file1, file2);  
  5.            if (result != 0) {  
  6.                break;  
  7.            }  
  8.        }  
  9.        return result;  
  10.    }  
 

这个函数也就是关键,这个是遍历delegates,并对它们进行一一比较,一旦分出胜负就break掉,并返回。

 

3. DefaultFileComparator类的实现

      这个类故名思意就是使用File的compare方法进行两个File的比较,这个里面需要注意的是里面提供了两个常量的Comparator,一个是ReverseComparator,这个会在后面讲到。

 

Java代码  收藏代码
  1. /** Singleton default comparator instance */  
  2.     public static final Comparator<File> DEFAULT_COMPARATOR = new DefaultFileComparator();  
  3.   
  4.     /** Singleton reverse default comparator instance */  
  5.     public static final Comparator<File> DEFAULT_REVERSE = new ReverseComparator(DEFAULT_COMPARATOR);  

 

4.  DirectoryFileComparator类的实现

    这个类也比较好理解,就是实现了Directory和File进行比较的函数,看到下面的函数的实现,我们就可以看到它的实现了。

 

Java代码  收藏代码
  1. public int compare(File file1, File file2) {  
  2.        return (getType(file1) - getType(file2));  
  3.    }  
  4.   
  5.    /** 
  6.     * Convert type to numeric value. 
  7.     * 
  8.     * @param file The file 
  9.     * @return 1 for directories and 2 for files 
  10.     */  
  11.    private int getType(File file) {  
  12.        if (file.isDirectory()) {  
  13.            return 1;  
  14.        } else {  
  15.            return 2;  
  16.        }  
  17.    }  

 我们可以看出,如果是directory的话是返回1的,如果是file的话是返回2. 就是directory永远小于file,真的不知道这个类在什么时候会用到。

 

4.  ExtensionFileComparator类的实现

     这个类从名称上应该可以看出是用来比较File的extension的,这个很好理解,但是在这里面有一个比较关键的就是比较的时候是case sensitive的还是insensitive的,这个里面在IO里面它实现了一个CaseSensitive这个类来实现的。我们下来分析一下这个类的实现:

       构造函数是可以传递一个IOCase对象,用来标记是Case Sensitive,默认是Case Sensitive的。

 

Java代码  收藏代码
  1. public ExtensionFileComparator() {  
  2.      this.caseSensitivity = IOCase.SENSITIVE;  
  3.  }  
  4.   
  5.   
  6.  public ExtensionFileComparator(IOCase caseSensitivity) {  
  7.      this.caseSensitivity = caseSensitivity == null ? IOCase.SENSITIVE : caseSensitivity;  
  8.  }  

       这下面就是这个类比较关键的地方,就是获得文件的后缀名,然后使用caseSensitivity来比较文件的后缀名的。

 

Java代码  收藏代码
  1. public int compare(File file1, File file2) {  
  2.         String suffix1 = FilenameUtils.getExtension(file1.getName());  
  3.         String suffix2 = FilenameUtils.getExtension(file2.getName());  
  4.         return caseSensitivity.checkCompareTo(suffix1, suffix2);  
  5.     }  
 

5.  LastModifiedFileComparator类的实现

 

  这个类也比较好理解,就是用来比较文件的最后修改时间的,然后比较最后修改时间。

 

Java代码  收藏代码
  1. public int compare(File file1, File file2) {  
  2.         long result = file1.lastModified() - file2.lastModified();  
  3.         if (result < 0) {  
  4.             return -1;  
  5.         } else if (result > 0) {  
  6.             return 1;  
  7.         } else {  
  8.             return 0;  
  9.         }  
  10.     }  

 6.  NameFileComparator类的实现

 

   这个类其实也比较好理解,就是对文件名进行比较,凡是牵扯到字符串比较的,都有Case Sensitenvity的问题,所以在这个类的构造函数里面也会传递一个IOCase对象,在compareTo函数获得两个文件的文件名后直接使用文件名进行比较即可。这个代码我就不贴了,特别好理解。

 

 7 .  PathFileComparator类的实现

 

   这个类也比较好理解,就是对file的path进行比较,这个同样也有case sensitivity的问题,所以会在构造函数里面传递一个IOCase对象,在compareTo函数里面分别获取两个文件的path,然后调用IOCase进行比较。

 

 8 .  ReverseComparator类的实现

 

      这个类其实用的比较多,主要是想返回right和left的比较结果,所以在设计上也稍微比较高明一些,就是有一个delegate,然后在compareTo函数里面调用delegate的compareTo函数,不过把参数修改后compareTo(right,left),我想大家应该都明白怎么回事了,代码我就不贴上来了。

 

 

 9 .  SizeFileComparator类的实现

     这个类其实也比较好理解就是比较两个文件的大小,我们知道在Java里面File即可以是一个真实的File,也可以是一个Directory,所以遇到directory的时候我们到底要不要统计它的子元素的大小,所以他在设计的时候就考虑到了,专门设计了一个sumDirectoryContents变量,用来统计是不是计算directory里面文件的大学的总和。我们来具体的看一下代码:


Java代码  收藏代码
  1. public int compare(File file1, File file2) {  
  2.         long size1 = 0;  
  3.         if (file1.isDirectory()) {  
  4.             size1 = sumDirectoryContents && file1.exists() ? FileUtils.sizeOfDirectory(file1) : 0;  
  5.         } else {  
  6.             size1 = file1.length();  
  7.         }  
  8.         long size2 = 0;  
  9.         if (file2.isDirectory()) {  
  10.             size2 = sumDirectoryContents && file2.exists() ? FileUtils.sizeOfDirectory(file2) : 0;  
  11.         } else {  
  12.             size2 = file2.length();  
  13.         }  
  14.         long result = size1 - size2;  
  15.         if (result < 0) {  
  16.             return -1;  
  17.         } else if (result > 0) {  
  18.             return 1;  
  19.         } else {  
  20.             return 0;  
  21.         }  
  22.     }  



"C:\Program Files\Java\jdk1.8.0_131\bin\java.exe" -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:55092,suspend=y,server=n -javaagent:C:\Users\35131\AppData\Local\JetBrains\IntelliJIdea2025.1\captureAgent\debugger-agent.jar=file:///C:/Users/35131/AppData/Local/Temp/capture2031639416253389831.props -agentpath:C:\Users\35131\AppData\Local\Temp\idea_libasyncProfiler_dll_temp_folder2\libasyncProfiler.dll=version,jfr,event=wall,interval=10ms,cstack=no,file=C:\Users\35131\IdeaSnapshots\AdminApplication_2025_05_27_143821.jfr,dbghelppath=C:\Users\35131\AppData\Local\Temp\idea_dbghelp_dll_temp_folder\dbghelp.dll,log=C:\Users\35131\AppData\Local\Temp\AdminApplication_2025_05_27_143821.jfr.log.txt,logLevel=DEBUG -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-Dmanagement.endpoints.jmx.exposure.include=*" -Dkotlinx.coroutines.debug.enable.creation.stack.trace=false -Ddebugger.agent.enable.coroutines=true -Dkotlinx.coroutines.debug.enable.flows.stack.trace=true -Dkotlinx.coroutines.debug.enable.mutable.state.flows.stack.trace=true -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_131\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\rt.jar;C:\Users\35131\Desktop\0521\server\server-admin\target\classes;C:\Users\35131\.m2\repository\org\springframework\boot\spring-boot-starter-web\2.7.2\spring-boot-starter-web-2.7.2.jar;C:\Users\35131\.m2\repository\org\springframework\boot\spring-boot-starter\2.7.2\spring-boot-starter-2.7.2.jar;C:\Users\35131\.m2\repository\org\springframework\boot\spring-boot-starter-logging\2.7.2\spring-boot-starter-logging-2.7.2.jar;C:\Users\35131\.m2\repository\ch\qos\logback\logback-classic\1.2.11\logback-classic-1.2.11.jar;C:\Users\35131\.m2\repository\ch\qos\logback\logback-core\1.2.11\logback-core-1.2.11.jar;C:\Users\35131\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.17.2\log4j-to-slf4j-2.17.2.jar;C:\Users\35131\.m2\repository\org\slf4j\jul-to-slf4j\1.7.36\jul-to-slf4j-1.7.36.jar;C:\Users\35131\.m2\repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;C:\Users\35131\.m2\repository\org\springframework\spring-core\5.3.22\spring-core-5.3.22.jar;C:\Users\35131\.m2\repository\org\springframework\spring-jcl\5.3.22\spring-jcl-5.3.22.jar;C:\Users\35131\.m2\repository\org\yaml\snakeyaml\1.30\snakeyaml-1.30.jar;C:\Users\35131\.m2\repository\org\springframework\boot\spring-boot-starter-json\2.7.2\spring-boot-starter-json-2.7.2.jar;C:\Users\35131\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.13.3\jackson-databind-2.13.3.jar;C:\Users\35131\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.13.3\jackson-core-2.13.3.jar;C:\Users\35131\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.13.3\jackson-datatype-jdk8-2.13.3.jar;C:\Users\35131\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.13.3\jackson-datatype-jsr310-2.13.3.jar;C:\Users\35131\.m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.13.3\jackson-module-parameter-names-2.13.3.jar;C:\Users\35131\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\2.7.2\spring-boot-starter-tomcat-2.7.2.jar;C:\Users\35131\.m2\repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.65\tomcat-embed-core-9.0.65.jar;C:\Users\35131\.m2\repository\org\apache\tomcat\embed\tomcat-embed-el\9.0.65\tomcat-embed-el-9.0.65.jar;C:\Users\35131\.m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.65\tomcat-embed-websocket-9.0.65.jar;C:\Users\35131\.m2\repository\org\springframework\spring-web\5.3.22\spring-web-5.3.22.jar;C:\Users\35131\.m2\repository\org\springframework\spring-beans\5.3.22\spring-beans-5.3.22.jar;C:\Users\35131\.m2\repository\org\springframework\spring-webmvc\5.3.22\spring-webmvc-5.3.22.jar;C:\Users\35131\.m2\repository\org\springframework\spring-context\5.3.22\spring-context-5.3.22.jar;C:\Users\35131\.m2\repository\org\springframework\spring-expression\5.3.22\spring-expression-5.3.22.jar;C:\Users\35131\.m2\repository\org\springframework\boot\spring-boot-starter-aop\2.7.2\spring-boot-starter-aop-2.7.2.jar;C:\Users\35131\.m2\repository\org\springframework\spring-aop\5.3.22\spring-aop-5.3.22.jar;C:\Users\35131\.m2\repository\org\aspectj\aspectjweaver\1.9.7\aspectjweaver-1.9.7.jar;C:\Users\35131\.m2\repository\org\springframework\boot\spring-boot-starter-data-redis\2.7.2\spring-boot-starter-data-redis-2.7.2.jar;C:\Users\35131\.m2\repository\org\springframework\data\spring-data-redis\2.7.2\spring-data-redis-2.7.2.jar;C:\Users\35131\.m2\repository\org\springframework\data\spring-data-keyvalue\2.7.2\spring-data-keyvalue-2.7.2.jar;C:\Users\35131\.m2\repository\org\springframework\data\spring-data-commons\2.7.2\spring-data-commons-2.7.2.jar;C:\Users\35131\.m2\repository\org\springframework\spring-tx\5.3.22\spring-tx-5.3.22.jar;C:\Users\35131\.m2\repository\org\springframework\spring-oxm\5.3.22\spring-oxm-5.3.22.jar;C:\Users\35131\.m2\repository\io\lettuce\lettuce-core\6.1.9.RELEASE\lettuce-core-6.1.9.RELEASE.jar;C:\Users\35131\.m2\repository\io\netty\netty-common\4.1.79.Final\netty-common-4.1.79.Final.jar;C:\Users\35131\.m2\repository\io\netty\netty-handler\4.1.79.Final\netty-handler-4.1.79.Final.jar;C:\Users\35131\.m2\repository\io\netty\netty-resolver\4.1.79.Final\netty-resolver-4.1.79.Final.jar;C:\Users\35131\.m2\repository\io\netty\netty-buffer\4.1.79.Final\netty-buffer-4.1.79.Final.jar;C:\Users\35131\.m2\repository\io\netty\netty-transport-native-unix-common\4.1.79.Final\netty-transport-native-unix-common-4.1.79.Final.jar;C:\Users\35131\.m2\repository\io\netty\netty-codec\4.1.79.Final\netty-codec-4.1.79.Final.jar;C:\Users\35131\.m2\repository\io\netty\netty-transport\4.1.79.Final\netty-transport-4.1.79.Final.jar;C:\Users\35131\.m2\repository\io\projectreactor\reactor-core\3.4.21\reactor-core-3.4.21.jar;C:\Users\35131\.m2\repository\org\reactivestreams\reactive-streams\1.0.4\reactive-streams-1.0.4.jar;C:\Users\35131\Desktop\0521\server\server-common\target\classes;C:\Users\35131\.m2\repository\org\springframework\boot\spring-boot-starter-validation\2.7.2\spring-boot-starter-validation-2.7.2.jar;C:\Users\35131\.m2\repository\org\hibernate\validator\hibernate-validator\6.2.3.Final\hibernate-validator-6.2.3.Final.jar;C:\Users\35131\.m2\repository\jakarta\validation\jakarta.validation-api\2.0.2\jakarta.validation-api-2.0.2.jar;C:\Users\35131\.m2\repository\org\jboss\logging\jboss-logging\3.4.3.Final\jboss-logging-3.4.3.Final.jar;C:\Users\35131\.m2\repository\org\springframework\boot\spring-boot-starter-security\2.7.2\spring-boot-starter-security-2.7.2.jar;C:\Users\35131\.m2\repository\org\springframework\security\spring-security-config\5.7.2\spring-security-config-5.7.2.jar;C:\Users\35131\.m2\repository\org\springframework\security\spring-security-core\5.7.2\spring-security-core-5.7.2.jar;C:\Users\35131\.m2\repository\org\springframework\security\spring-security-crypto\5.7.2\spring-security-crypto-5.7.2.jar;C:\Users\35131\.m2\repository\org\springframework\security\spring-security-web\5.7.2\spring-security-web-5.7.2.jar;C:\Users\35131\.m2\repository\org\springframework\security\spring-security-jwt\1.1.1.RELEASE\spring-security-jwt-1.1.1.RELEASE.jar;C:\Users\35131\.m2\repository\org\bouncycastle\bcpkix-jdk15on\1.64\bcpkix-jdk15on-1.64.jar;C:\Users\35131\.m2\repository\org\bouncycastle\bcprov-jdk15on\1.64\bcprov-jdk15on-1.64.jar;C:\Users\35131\.m2\repository\io\jsonwebtoken\jjwt\0.9.1\jjwt-0.9.1.jar;C:\Users\35131\.m2\repository\com\alibaba\fastjson\2.0.10\fastjson-2.0.10.jar;C:\Users\35131\.m2\repository\com\alibaba\fastjson2\fastjson2-extension\2.0.10\fastjson2-extension-2.0.10.jar;C:\Users\35131\.m2\repository\com\alibaba\fastjson2\fastjson2\2.0.10\fastjson2-2.0.10.jar;C:\Users\35131\.m2\repository\javax\servlet\javax.servlet-api\4.0.1\javax.servlet-api-4.0.1.jar;C:\Users\35131\.m2\repository\net\dreamlu\mica-ip2region\2.6.7\mica-ip2region-2.6.7.jar;C:\Users\35131\.m2\repository\net\dreamlu\mica-core\2.6.7\mica-core-2.6.7.jar;C:\Users\35131\.m2\repository\commons-io\commons-io\2.11.0\commons-io-2.11.0.jar;C:\Users\35131\.m2\repository\org\apache\commons\commons-lang3\3.12.0\commons-lang3-3.12.0.jar;C:\Users\35131\.m2\repository\com\baomidou\mybatis-plus-annotation\3.5.1\mybatis-plus-annotation-3.5.1.jar;C:\Users\35131\.m2\repository\com\alibaba\easyexcel\3.1.1\easyexcel-3.1.1.jar;C:\Users\35131\.m2\repository\com\alibaba\easyexcel-core\3.1.1\easyexcel-core-3.1.1.jar;C:\Users\35131\.m2\repository\com\alibaba\easyexcel-support\3.1.1\easyexcel-support-3.1.1.jar;C:\Users\35131\.m2\repository\org\apache\poi\poi-ooxml-schemas\4.1.2\poi-ooxml-schemas-4.1.2.jar;C:\Users\35131\.m2\repository\org\apache\commons\commons-csv\1.8\commons-csv-1.8.jar;C:\Users\35131\.m2\repository\org\ehcache\ehcache\3.10.0\ehcache-3.10.0.jar;C:\Users\35131\.m2\repository\javax\cache\cache-api\1.1.1\cache-api-1.1.1.jar;C:\Users\35131\.m2\repository\org\glassfish\jaxb\jaxb-runtime\2.3.6\jaxb-runtime-2.3.6.jar;C:\Users\35131\.m2\repository\jakarta\xml\bind\jakarta.xml.bind-api\2.3.3\jakarta.xml.bind-api-2.3.3.jar;C:\Users\35131\.m2\repository\org\glassfish\jaxb\txw2\2.3.6\txw2-2.3.6.jar;C:\Users\35131\.m2\repository\com\sun\istack\istack-commons-runtime\3.0.12\istack-commons-runtime-3.0.12.jar;C:\Users\35131\.m2\repository\com\sun\activation\jakarta.activation\1.2.2\jakarta.activation-1.2.2.jar;C:\Users\35131\.m2\repository\io\springfox\springfox-boot-starter\3.0.0\springfox-boot-starter-3.0.0.jar;C:\Users\35131\.m2\repository\io\springfox\springfox-oas\3.0.0\springfox-oas-3.0.0.jar;C:\Users\35131\.m2\repository\io\swagger\core\v3\swagger-annotations\2.1.2\swagger-annotations-2.1.2.jar;C:\Users\35131\.m2\repository\io\swagger\core\v3\swagger-models\2.1.2\swagger-models-2.1.2.jar;C:\Users\35131\.m2\repository\io\springfox\springfox-spi\3.0.0\springfox-spi-3.0.0.jar;C:\Users\35131\.m2\repository\io\springfox\springfox-schema\3.0.0\springfox-schema-3.0.0.jar;C:\Users\35131\.m2\repository\io\springfox\springfox-core\3.0.0\springfox-core-3.0.0.jar;C:\Users\35131\.m2\repository\net\bytebuddy\byte-buddy\1.12.12\byte-buddy-1.12.12.jar;C:\Users\35131\.m2\repository\io\springfox\springfox-spring-web\3.0.0\springfox-spring-web-3.0.0.jar;C:\Users\35131\.m2\repository\io\github\classgraph\classgraph\4.8.83\classgraph-4.8.83.jar;C:\Users\35131\.m2\repository\io\springfox\springfox-spring-webmvc\3.0.0\springfox-spring-webmvc-3.0.0.jar;C:\Users\35131\.m2\repository\io\springfox\springfox-spring-webflux\3.0.0\springfox-spring-webflux-3.0.0.jar;C:\Users\35131\.m2\repository\io\springfox\springfox-swagger-common\3.0.0\springfox-swagger-common-3.0.0.jar;C:\Users\35131\.m2\repository\org\mapstruct\mapstruct\1.3.1.Final\mapstruct-1.3.1.Final.jar;C:\Users\35131\.m2\repository\io\springfox\springfox-data-rest\3.0.0\springfox-data-rest-3.0.0.jar;C:\Users\35131\.m2\repository\io\springfox\springfox-bean-validators\3.0.0\springfox-bean-validators-3.0.0.jar;C:\Users\35131\.m2\repository\io\springfox\springfox-swagger2\3.0.0\springfox-swagger2-3.0.0.jar;C:\Users\35131\.m2\repository\io\swagger\swagger-annotations\1.5.20\swagger-annotations-1.5.20.jar;C:\Users\35131\.m2\repository\io\swagger\swagger-models\1.5.20\swagger-models-1.5.20.jar;C:\Users\35131\.m2\repository\io\springfox\springfox-swagger-ui\3.0.0\springfox-swagger-ui-3.0.0.jar;C:\Users\35131\.m2\repository\com\fasterxml\classmate\1.5.1\classmate-1.5.1.jar;C:\Users\35131\.m2\repository\org\springframework\plugin\spring-plugin-core\2.0.0.RELEASE\spring-plugin-core-2.0.0.RELEASE.jar;C:\Users\35131\.m2\repository\org\springframework\plugin\spring-plugin-metadata\2.0.0.RELEASE\spring-plugin-metadata-2.0.0.RELEASE.jar;C:\Users\35131\Desktop\0521\server\server-system\target\classes;C:\Users\35131\.m2\repository\mysql\mysql-connector-java\8.0.29\mysql-connector-java-8.0.29.jar;C:\Users\35131\.m2\repository\com\baomidou\mybatis-plus-boot-starter\3.5.1\mybatis-plus-boot-starter-3.5.1.jar;C:\Users\35131\.m2\repository\com\baomidou\mybatis-plus\3.5.1\mybatis-plus-3.5.1.jar;C:\Users\35131\.m2\repository\com\baomidou\mybatis-plus-extension\3.5.1\mybatis-plus-extension-3.5.1.jar;C:\Users\35131\.m2\repository\com\baomidou\mybatis-plus-core\3.5.1\mybatis-plus-core-3.5.1.jar;C:\Users\35131\.m2\repository\com\github\jsqlparser\jsqlparser\4.3\jsqlparser-4.3.jar;C:\Users\35131\.m2\repository\org\mybatis\mybatis\3.5.9\mybatis-3.5.9.jar;C:\Users\35131\.m2\repository\org\mybatis\mybatis-spring\2.0.6\mybatis-spring-2.0.6.jar;C:\Users\35131\.m2\repository\org\springframework\boot\spring-boot-starter-jdbc\2.7.2\spring-boot-starter-jdbc-2.7.2.jar;C:\Users\35131\.m2\repository\com\zaxxer\HikariCP\4.0.3\HikariCP-4.0.3.jar;C:\Users\35131\.m2\repository\org\springframework\spring-jdbc\5.3.22\spring-jdbc-5.3.22.jar;C:\Users\35131\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.13.3\jackson-annotations-2.13.3.jar;C:\Users\35131\.m2\repository\org\apache\poi\poi\5.2.3\poi-5.2.3.jar;C:\Users\35131\.m2\repository\commons-codec\commons-codec\1.15\commons-codec-1.15.jar;C:\Users\35131\.m2\repository\org\apache\commons\commons-collections4\4.4\commons-collections4-4.4.jar;C:\Users\35131\.m2\repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;C:\Users\35131\.m2\repository\com\zaxxer\SparseBitSet\1.2\SparseBitSet-1.2.jar;C:\Users\35131\.m2\repository\org\apache\logging\log4j\log4j-api\2.17.2\log4j-api-2.17.2.jar;C:\Users\35131\.m2\repository\org\apache\poi\poi-ooxml\5.2.3\poi-ooxml-5.2.3.jar;C:\Users\35131\.m2\repository\org\apache\poi\poi-ooxml-lite\5.2.3\poi-ooxml-lite-5.2.3.jar;C:\Users\35131\.m2\repository\org\apache\xmlbeans\xmlbeans\5.1.1\xmlbeans-5.1.1.jar;C:\Users\35131\.m2\repository\xml-apis\xml-apis\1.4.01\xml-apis-1.4.01.jar;C:\Users\35131\.m2\repository\org\apache\commons\commons-compress\1.21\commons-compress-1.21.jar;C:\Users\35131\.m2\repository\com\github\virtuald\curvesapi\1.07\curvesapi-1.07.jar;C:\Users\35131\Desktop\0521\server\server-quartz\target\classes;C:\Users\35131\.m2\repository\org\quartz-scheduler\quartz\2.3.2\quartz-2.3.2.jar;C:\Users\35131\.m2\repository\com\mchange\mchange-commons-java\0.2.15\mchange-commons-java-0.2.15.jar;C:\Users\35131\.m2\repository\org\springframework\spring-context-support\5.3.22\spring-context-support-5.3.22.jar;C:\Users\35131\Desktop\0521\server\server-framework\target\classes;C:\Users\35131\.m2\repository\com\github\xiaoymin\knife4j-spring-boot-starter\3.0.2\knife4j-spring-boot-starter-3.0.2.jar;C:\Users\35131\.m2\repository\com\github\xiaoymin\knife4j-spring-boot-autoconfigure\3.0.2\knife4j-spring-boot-autoconfigure-3.0.2.jar;C:\Users\35131\.m2\repository\com\github\xiaoymin\knife4j-spring\3.0.2\knife4j-spring-3.0.2.jar;C:\Users\35131\.m2\repository\com\github\xiaoymin\knife4j-annotations\3.0.2\knife4j-annotations-3.0.2.jar;C:\Users\35131\.m2\repository\com\github\xiaoymin\knife4j-core\3.0.2\knife4j-core-3.0.2.jar;C:\Users\35131\.m2\repository\org\javassist\javassist\3.25.0-GA\javassist-3.25.0-GA.jar;C:\Users\35131\.m2\repository\io\swagger\swagger-core\1.5.22\swagger-core-1.5.22.jar;C:\Users\35131\.m2\repository\com\fasterxml\jackson\dataformat\jackson-dataformat-yaml\2.13.3\jackson-dataformat-yaml-2.13.3.jar;C:\Users\35131\.m2\repository\com\google\guava\guava\27.0.1-android\guava-27.0.1-android.jar;C:\Users\35131\.m2\repository\com\google\guava\failureaccess\1.0.1\failureaccess-1.0.1.jar;C:\Users\35131\.m2\repository\com\google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;C:\Users\35131\.m2\repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;C:\Users\35131\.m2\repository\org\checkerframework\checker-compat-qual\2.5.2\checker-compat-qual-2.5.2.jar;C:\Users\35131\.m2\repository\com\google\errorprone\error_prone_annotations\2.2.0\error_prone_annotations-2.2.0.jar;C:\Users\35131\.m2\repository\com\google\j2objc\j2objc-annotations\1.1\j2objc-annotations-1.1.jar;C:\Users\35131\.m2\repository\org\codehaus\mojo\animal-sniffer-annotations\1.17\animal-sniffer-annotations-1.17.jar;C:\Users\35131\.m2\repository\javax\validation\validation-api\2.0.1.Final\validation-api-2.0.1.Final.jar;C:\Users\35131\.m2\repository\com\github\xiaoymin\knife4j-spring-ui\3.0.2\knife4j-spring-ui-3.0.2.jar;C:\Users\35131\.m2\repository\org\projectlombok\lombok\1.18.30\lombok-1.18.30.jar;C:\Users\35131\.m2\repository\cn\hutool\hutool-all\5.8.0\hutool-all-5.8.0.jar;C:\Users\35131\.m2\repository\com\github\oshi\oshi-core\6.1.6\oshi-core-6.1.6.jar;C:\Users\35131\.m2\repository\net\java\dev\jna\jna\5.11.0\jna-5.11.0.jar;C:\Users\35131\.m2\repository\net\java\dev\jna\jna-platform\5.11.0\jna-platform-5.11.0.jar;C:\Users\35131\.m2\repository\org\slf4j\slf4j-api\1.7.36\slf4j-api-1.7.36.jar;C:\Users\35131\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\2.7.2\spring-boot-autoconfigure-2.7.2.jar;C:\Users\35131\.m2\repository\org\springframework\boot\spring-boot\2.7.2\spring-boot-2.7.2.jar;C:\Users\35131\.m2\repository\org\springframework\boot\spring-boot-starter-actuator\2.7.2\spring-boot-starter-actuator-2.7.2.jar;C:\Users\35131\.m2\repository\org\springframework\boot\spring-boot-actuator-autoconfigure\2.7.2\spring-boot-actuator-autoconfigure-2.7.2.jar;C:\Users\35131\.m2\repository\org\springframework\boot\spring-boot-actuator\2.7.2\spring-boot-actuator-2.7.2.jar;C:\Users\35131\.m2\repository\io\micrometer\micrometer-core\1.9.2\micrometer-core-1.9.2.jar;C:\Users\35131\.m2\repository\org\hdrhistogram\HdrHistogram\2.1.12\HdrHistogram-2.1.12.jar;C:\Users\35131\.m2\repository\org\latencyutils\LatencyUtils\2.0.3\LatencyUtils-2.0.3.jar;D:\IntelliJ IDEA 2025.1.1.1\lib\idea_rt.jar" cn.zczx.base.admin.AdminApplication 已连接到地址为 ''127.0.0.1:55092',传输: '套接字'' 的目标虚拟机 14:38:22.933 [main] DEBUG reactor.util.Loggers - Using Slf4j logging framework 14:38:22.941 [main] DEBUG reactor.core.publisher.Hooks - Enabling stacktrace debugging via onOperatorDebug . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.7.2) 2025-05-27 14:38:24.352 INFO 17924 --- [ main] cn.zczx.base.admin.AdminApplication : Starting AdminApplication using Java 1.8.0_131 on blue with PID 17924 (C:\Users\35131\Desktop\0521\server\server-admin\target\classes started by 35131 in C:\Users\35131\Desktop\0521\server) 2025-05-27 14:38:24.354 INFO 17924 --- [ main] cn.zczx.base.admin.AdminApplication : The following 1 profile is active: "dev" 2025-05-27 14:38:27.205 INFO 17924 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2025-05-27 14:38:27.205 INFO 17924 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.65] 2025-05-27 14:38:27.440 INFO 17924 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext Logging initialized using 'class org.apache.ibatis.logging.stdout.StdOutImpl' adapter. Registered plugin: 'com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor@2b0d85bd' 2025-05-27 14:38:28.821 ERROR 17924 --- [ main] c.b.m.core.MybatisConfiguration : mapper[cn.zczx.base.system.mapper.ArchivesMapper.page] is ignored, because it exists, maybe from xml file [cn.zczx.base.system.mapper.ArchivesMapper.update] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.Update] Parsed mapper file: 'file [C:\Users\35131\Desktop\0521\server\server-system\target\classes\mapper\ArchivesMapper.xml]' Parsed mapper file: 'file [C:\Users\35131\Desktop\0521\server\server-system\target\classes\mapper\CompanyEnergyCapacityMapper.xml]' Parsed mapper file: 'file [C:\Users\35131\Desktop\0521\server\server-system\target\classes\mapper\CompanyEnergyConfigMapper.xml]' Parsed mapper file: 'file [C:\Users\35131\Desktop\0521\server\server-system\target\classes\mapper\CompanyEnergyRecordMapper.xml]' Parsed mapper file: 'file [C:\Users\35131\Desktop\0521\server\server-system\target\classes\mapper\CompanyEnergySwitchMapper.xml]' [cn.zczx.base.system.mapper.CompanyMapper.update] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.Update] [cn.zczx.base.system.mapper.CompanyMapper.updateById] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.UpdateById] Parsed mapper file: 'file [C:\Users\35131\Desktop\0521\server\server-system\target\classes\mapper\CompanyMapper.xml]' Parsed mapper file: 'file [C:\Users\35131\Desktop\0521\server\server-system\target\classes\mapper\MonitorRecordMapper.xml]' Parsed mapper file: 'file [C:\Users\35131\Desktop\0521\server\server-system\target\classes\mapper\SystemConfigMapper.xml]' Parsed mapper file: 'file [C:\Users\35131\Desktop\0521\server\server-system\target\classes\mapper\SystemDictItemMapper.xml]' Parsed mapper file: 'file [C:\Users\35131\Desktop\0521\server\server-system\target\classes\mapper\SystemDictTypeMapper.xml]' Parsed mapper file: 'file [C:\Users\35131\Desktop\0521\server\server-system\target\classes\mapper\SystemLoginLogMapper.xml]' Parsed mapper file: 'file [C:\Users\35131\Desktop\0521\server\server-system\target\classes\mapper\SystemMenuMapper.xml]' Parsed mapper file: 'file [C:\Users\35131\Desktop\0521\server\server-system\target\classes\mapper\SystemNoticeMapper.xml]' Parsed mapper file: 'file [C:\Users\35131\Desktop\0521\server\server-system\target\classes\mapper\SystemOperLogMapper.xml]' Parsed mapper file: 'file [C:\Users\35131\Desktop\0521\server\server-system\target\classes\mapper\SystemPostMapper.xml]' Parsed mapper file: 'file [C:\Users\35131\Desktop\0521\server\server-system\target\classes\mapper\SystemRoleMapper.xml]' Can not find table primary key in Class: "cn.zczx.base.system.model.entity.SystemRoleMenu". 2025-05-27 14:38:29.278 WARN 17924 --- [ main] c.b.m.core.injector.DefaultSqlInjector : class cn.zczx.base.system.model.entity.SystemRoleMenu ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. Parsed mapper file: 'file [C:\Users\35131\Desktop\0521\server\server-system\target\classes\mapper\SystemRoleMenuMapper.xml]' Parsed mapper file: 'file [C:\Users\35131\Desktop\0521\server\server-system\target\classes\mapper\SystemUnitMapper.xml]' Parsed mapper file: 'file [C:\Users\35131\Desktop\0521\server\server-system\target\classes\mapper\SystemUserMapper.xml]' Can not find table primary key in Class: "cn.zczx.base.system.model.entity.SystemUserPost". 2025-05-27 14:38:29.337 WARN 17924 --- [ main] c.b.m.core.injector.DefaultSqlInjector : class cn.zczx.base.system.model.entity.SystemUserPost ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. Parsed mapper file: 'file [C:\Users\35131\Desktop\0521\server\server-system\target\classes\mapper\SystemUserPostMapper.xml]' Can not find table primary key in Class: "cn.zczx.base.system.model.entity.SystemUserRole". 2025-05-27 14:38:29.352 WARN 17924 --- [ main] c.b.m.core.injector.DefaultSqlInjector : class cn.zczx.base.system.model.entity.SystemUserRole ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. Parsed mapper file: 'file [C:\Users\35131\Desktop\0521\server\server-system\target\classes\mapper\SystemUserRoleMapper.xml]' 2025-05-27 14:38:30.736 INFO 17924 --- [ main] org.quartz.impl.StdSchedulerFactory : Using default implementation for ThreadExecutor 2025-05-27 14:38:30.764 INFO 17924 --- [ main] org.quartz.core.SchedulerSignalerImpl : Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl 2025-05-27 14:38:30.764 INFO 17924 --- [ main] org.quartz.core.QuartzScheduler : Quartz Scheduler v.2.3.2 created. 2025-05-27 14:38:30.783 INFO 17924 --- [ main] com.zaxxer.hikari.HikariDataSource : MyHikariCP - Starting... 2025-05-27 14:38:31.145 INFO 17924 --- [ main] com.zaxxer.hikari.HikariDataSource : MyHikariCP - Start completed. 2025-05-27 14:38:31.306 INFO 17924 --- [ main] org.quartz.core.QuartzScheduler : Scheduler meta-data: Quartz Scheduler (v2.3.2) 'TaskScheduler' with instanceId 'blue1748327910738' Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally. NOT STARTED. Currently in standby mode. Number of jobs executed: 0 Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 20 threads. Using job-store 'org.springframework.scheduling.quartz.LocalDataSourceJobStore' - which supports persistence. and is clustered. 2025-05-27 14:38:31.306 INFO 17924 --- [ main] org.quartz.impl.StdSchedulerFactory : Quartz scheduler 'TaskScheduler' initialized from an externally provided properties instance. 2025-05-27 14:38:31.306 INFO 17924 --- [ main] org.quartz.impl.StdSchedulerFactory : Quartz scheduler version: 2.3.2 2025-05-27 14:38:31.308 INFO 17924 --- [ main] org.quartz.core.QuartzScheduler : JobFactory set to: org.springframework.scheduling.quartz.AdaptableJobFactory@426bf2f2 Creating a new SqlSession SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6dbdbb69] was not registered for synchronization because synchronization is not active JDBC Connection [HikariProxyConnection@1689057490 wrapping com.mysql.cj.jdbc.ConnectionImpl@112a50a1] will not be managed by Spring ==> Preparing: SELECT id,job_name,job_group,invoke_target,cron_expression,misfire_policy,concurrent,status,create_by,create_time,update_by,update_time FROM system_job ==> Parameters: <== Columns: id, job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, create_time, update_by, update_time <== Row: 1552895359250931712, 测试12, 测试, DemoTask.noParams(), 1/1 * * * * ?, 2, 1, 0, 1, 2022-07-29 13:54:40, 1, 2022-08-04 15:41:38 <== Row: 1554347302003507200, 数据库备份, 备份恢复, DemoTask.params("abc"), 0 15 10 ? * *, 2, 1, 1, 1, 2022-07-26 09:36:09, 1, 2022-07-26 09:39:15 <== Total: 2 Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6dbdbb69] 2025-05-27 14:38:33.525 WARN 17924 --- [ main] o.s.s.c.a.web.builders.WebSecurity : You are asking Spring Security to ignore Ant [pattern='/resources/**']. This is not recommended -- please use permitAll via HttpSecurity#authorizeHttpRequests instead. 2025-05-27 14:38:33.526 WARN 17924 --- [ main] o.s.s.c.a.web.builders.WebSecurity : You are asking Spring Security to ignore Ant [pattern='/favicon.ico']. This is not recommended -- please use permitAll via HttpSecurity#authorizeHttpRequests instead. 2025-05-27 14:38:33.783 WARN 17924 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException 2025-05-27 14:38:33.787 INFO 17924 --- [ main] org.quartz.core.QuartzScheduler : Scheduler TaskScheduler_$_blue1748327910738 shutting down. 2025-05-27 14:38:33.787 INFO 17924 --- [ main] org.quartz.core.QuartzScheduler : Scheduler TaskScheduler_$_blue1748327910738 paused. 2025-05-27 14:38:33.788 INFO 17924 --- [ main] org.quartz.core.QuartzScheduler : Scheduler TaskScheduler_$_blue1748327910738 shutdown complete. 2025-05-27 14:38:33.819 INFO 17924 --- [ main] com.zaxxer.hikari.HikariDataSource : MyHikariCP - Shutdown initiated... 2025-05-27 14:38:33.827 INFO 17924 --- [ main] com.zaxxer.hikari.HikariDataSource : MyHikariCP - Shutdown completed. 2025-05-27 14:38:33.970 INFO 17924 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat] 2025-05-27 14:38:34.059 ERROR 17924 --- [ main] o.s.boot.SpringApplication : Application run failed org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:181) ~[spring-context-5.3.22.jar:5.3.22] at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:54) ~[spring-context-5.3.22.jar:5.3.22] at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356) ~[spring-context-5.3.22.jar:5.3.22] at java.lang.Iterable.forEach(Iterable.java:75) ~[na:1.8.0_131] at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:155) ~[spring-context-5.3.22.jar:5.3.22] at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:123) ~[spring-context-5.3.22.jar:5.3.22] at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:935) ~[spring-context-5.3.22.jar:5.3.22] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:586) ~[spring-context-5.3.22.jar:5.3.22] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147) ~[spring-boot-2.7.2.jar:2.7.2] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:734) [spring-boot-2.7.2.jar:2.7.2] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) [spring-boot-2.7.2.jar:2.7.2] at org.springframework.boot.SpringApplication.run(SpringApplication.java:308) [spring-boot-2.7.2.jar:2.7.2] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) [spring-boot-2.7.2.jar:2.7.2] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1295) [spring-boot-2.7.2.jar:2.7.2] at cn.zczx.base.admin.AdminApplication.main(AdminApplication.java:10) [classes/:na] Caused by: java.lang.NullPointerException: null at springfox.documentation.spring.web.WebMvcPatternsRequestConditionWrapper.getPatterns(WebMvcPatternsRequestConditionWrapper.java:56) ~[springfox-spring-webmvc-3.0.0.jar:3.0.0] at springfox.documentation.RequestHandler.sortedPaths(RequestHandler.java:113) ~[springfox-core-3.0.0.jar:3.0.0] at springfox.documentation.spi.service.contexts.Orderings.lambda$byPatternsCondition$3(Orderings.java:89) ~[springfox-spi-3.0.0.jar:3.0.0] at java.util.Comparator.lambda$comparing$77a9974f$1(Comparator.java:469) ~[na:1.8.0_131] at java.util.TimSort.countRunAndMakeAscending(TimSort.java:355) ~[na:1.8.0_131] at java.util.TimSort.sort(TimSort.java:234) ~[na:1.8.0_131] at java.util.Arrays.sort(Arrays.java:1512) ~[na:1.8.0_131] at java.util.ArrayList.sort(ArrayList.java:1454) ~[na:1.8.0_131] at java.util.stream.SortedOps$RefSortingSink.end(SortedOps.java:387) ~[na:1.8.0_131] at java.util.stream.Sink$ChainedReference.end(Sink.java:258) ~[na:1.8.0_131] at java.util.stream.Sink$ChainedReference.end(Sink.java:258) ~[na:1.8.0_131] at java.util.stream.Sink$ChainedReference.end(Sink.java:258) ~[na:1.8.0_131] at java.util.stream.Sink$ChainedReference.end(Sink.java:258) ~[na:1.8.0_131] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) ~[na:1.8.0_131] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) ~[na:1.8.0_131] at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) ~[na:1.8.0_131] at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:1.8.0_131] at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) ~[na:1.8.0_131] at springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider.requestHandlers(WebMvcRequestHandlerProvider.java:81) ~[springfox-spring-webmvc-3.0.0.jar:3.0.0] at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[na:1.8.0_131] at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374) ~[na:1.8.0_131] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) ~[na:1.8.0_131] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) ~[na:1.8.0_131] at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) ~[na:1.8.0_131] at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:1.8.0_131] at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) ~[na:1.8.0_131] at springfox.documentation.spring.web.plugins.AbstractDocumentationPluginsBootstrapper.withDefaults(AbstractDocumentationPluginsBootstrapper.java:107) ~[springfox-spring-web-3.0.0.jar:3.0.0] at springfox.documentation.spring.web.plugins.AbstractDocumentationPluginsBootstrapper.buildContext(AbstractDocumentationPluginsBootstrapper.java:91) ~[springfox-spring-web-3.0.0.jar:3.0.0] at springfox.documentation.spring.web.plugins.AbstractDocumentationPluginsBootstrapper.bootstrapDocumentationPlugins(AbstractDocumentationPluginsBootstrapper.java:82) ~[springfox-spring-web-3.0.0.jar:3.0.0] at springfox.documentation.spring.web.plugins.DocumentationPluginsBootstrapper.start(DocumentationPluginsBootstrapper.java:100) ~[springfox-spring-web-3.0.0.jar:3.0.0] at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:178) ~[spring-context-5.3.22.jar:5.3.22] ... 14 common frames omitted 已与地址为 ''127.0.0.1:55092',传输: '套接字'' 的目标虚拟机断开连接 进程已结束,退出代码为 1
05-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值