java VFS的版本,当您将Spring Boot作为java -jar yourapp.jar运行时也可以使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java VFS的版本,当您将Spring Boot作为java -jar yourapp.jar运行时也可以使用相关的知识,希望对你有一定的参考价值。
package foo.stripesutls;
import static java.util.stream.Collectors.toList;
import java.io.IOException;
import java.net.URI;
import java.net.URL;
import java.util.Arrays;
import java.util.List;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver;
import com.google.common.annotations.VisibleForTesting;
import net.sourceforge.stripes.vfs.VFS;
public class SpringBootExecutableJarVFS extends VFS {
@Override
public boolean isValid() {
return true;
}
@Override
public List<String> list(final URL url, final String path) throws IOException {
ClassLoader cl = this.getClass().getClassLoader();
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(cl);
Resource[] resources = resolver.getResources(path + "/**/*.class");
final List<String> resourcePaths = Arrays.asList(resources).stream()
.map(resource -> {
try {
return preserveSubpackageName(resource.getURI(), path);
} catch (IOException e) {
throw new RuntimeException(e);
}
})
.collect(toList());
return resourcePaths;
}
@VisibleForTesting
protected static String preserveSubpackageName(final URI uri, final String rootPath) {
final String uriStr = uri.toString();
// we must return the uri with everything before the rootpath stripped off
final int start = uriStr.indexOf(rootPath);
return uriStr.substring(start, uriStr.length());
}
}
以上是关于java VFS的版本,当您将Spring Boot作为java -jar yourapp.jar运行时也可以使用的主要内容,如果未能解决你的问题,请参考以下文章
当您将合约存储在映射中时,实际存储了啥?
当您将对象数组转换为字符串数组时,它叫啥?
如何测试当您将应用更新发布到市场时会发生啥
使用 GraphQL Java 工具时 Spring Boot 应用程序无法启动
当您将数据绑定到集合时,如何将其设置为属性? [复制]
当您将表格与公共列组合时重叠日期逻辑 - 领先或滞后