当前位置: 首页 > news >正文

货运代理网站模板xp系统做网站服务器

货运代理网站模板,xp系统做网站服务器,百度收录检测,阜阳做网站的需求: 要实现指定pkg(如com.qiqitrue.test.pojo)扫描包下所有class类信息:使用代码如下 使用的版本:0.10.2(截至目前是最新版)发现只能在idea编译期间可以获取得到(也就是在开发阶段…

需求:
要实现指定pkg(如com.qiqitrue.test.pojo)扫描包下所有class类信息:使用代码如下
pkg扫描包:如com.qiqitrue.test.pojo
使用的版本:0.10.2(截至目前是最新版)发现只能在idea编译期间可以获取得到(也就是在开发阶段)。当打成了jar包之后,获取不到。
先找到了
https://github.com/CESNET/perun/pull/3836
https://github.com/ronmamo/reflections
这个。改成了如下:

Reflections reflections = new Reflections(new ConfigurationBuilder().forPackage("com.my.project")// 先注释这个,一会说原因//.filterInputsBy(new FilterBuilder().includePackage("com.my.project")));

改了这个之后虽然能获取到。但实际上,所谓定义package,只是为classloader找路径而已。并没有指定传得包,也就是说,虽然我指定了package,但是,实际扫描得路径是target\classs(那范围可大了)。打成jar包之后获取,也是可以。貌似解决了。但如果我程序中有多次扫描不同的包下类上标注相同注解的类,那将会出现重叠的情况。
比如这样:

String pkg = "com.qiqitrue.pojo.a";//@1
Reflections reflections = new Reflections(pkg);
Set<Class<?>> resourceTypeClasses = reflections.getTypesAnnotatedWith(MyAnno.class);
log.info("扫描出类型{}资源类实体数:{}", subPathPackage, resourceTypeClasses.size());String pkg = "com.qiqitrue.pojo.b";//@2package com.qiqitrue.pojo.a;
@MyAnno
class A {
}package com.qiqitrue.pojo.b;
@MyAnno
class B {
}a和b包都有标注相同的注解情况下,那将产生重复。虽然能通过包名进行过滤,但是且不够优雅。

为了需要,就需要把filterInputsBy(new FilterBuilder().includePackage(“com.my.project”))这个也加上,发现就可以解决上面说的问题。

但是…打包jar之后运行,获取不到。最终解决是回退到版本:0.9.11
https://github.com/ronmamo/reflections/issues/373

虽然切换个版本就能解决,但是不知道为何解决了,继续刨根问底看一下,
对比两个版本的代码实现,发现0.10.X版本有了重大更新。跟踪源码
在这里插入图片描述
重点是scan()方法

protected Map<String, Map<String, Set<String>>> scan() {long start = System.currentTimeMillis();Map<String, Set<Map.Entry<String, String>>> collect = configuration.getScanners().stream().map(Scanner::index).distinct().collect(Collectors.toMap(s -> s, s -> Collections.synchronizedSet(new HashSet<>())));Set<URL> urls = configuration.getUrls();(configuration.isParallel() ? urls.stream().parallel() : urls.stream()).forEach(url -> {Vfs.Dir dir = null;try {dir = Vfs.fromURL(url);//@1 这是重点,进入这个方法看一下for (Vfs.File file : dir.getFiles()) {if (doFilter(file, configuration.getInputsFilter())) {ClassFile classFile = null;for (Scanner scanner : configuration.getScanners()) {try {if (doFilter(file, scanner::acceptsInput)) {List<Map.Entry<String, String>> entries = scanner.scan(file);if (entries == null) {if (classFile == null) classFile = getClassFile(file);entries = scanner.scan(classFile);}if (entries != null) collect.get(scanner.index()).addAll(entries);}} catch (Exception e) {if (log != null) log.trace("could not scan file {} with scanner {}", file.getRelativePath(), scanner.getClass().getSimpleName(), e);}}}}} catch (Exception e) {if (log != null) log.warn("could not create Vfs.Dir from url. ignoring the exception and continuing", e);} finally {if (dir != null) dir.close();}});// mergeMap<String, Map<String, Set<String>>> storeMap =collect.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey,entry -> entry.getValue().stream().filter(e -> e.getKey() != null).collect(Collectors.groupingBy(Map.Entry::getKey,HashMap::new,Collectors.mapping(Map.Entry::getValue, Collectors.toSet())))));if (log != null) {int keys = 0, values = 0;for (Map<String, Set<String>> map : storeMap.values()) {keys += map.size();values += map.values().stream().mapToLong(Set::size).sum();}log.info(format("Reflections took %d ms to scan %d urls, producing %d keys and %d values", System.currentTimeMillis() - start, urls.size(), keys, values));}return storeMap;
}

在这里插入图片描述
重点就是这个defaultUrlTypes。
在这里插入图片描述
在这里插入图片描述
主要涉及到了这个正则:
在这里插入图片描述
进行了取反,即不支持springboot打包jar的方式。

再看下0.9.11版本的
在这里插入图片描述
对比之下,就是没有新版取反的条件。

http://www.yayakq.cn/news/75102/

相关文章:

  • 南昌网站开发技术查询网站内页关键词排名
  • 虹口网站开发培训课程做网址多少钱
  • 权威数据统计网站shopwt多用户商城系统
  • 品牌网站建设流程图中国建设建行网站
  • 如何建设好一个公司网站县区工会网站建设方案
  • 铜川网站开发商标注册证查询官网
  • 专科网站建设论文宣城高端网站建设
  • 云南省建设工作网站wordpress去除目录
  • seo综合查询网站vps租用
  • 建设行政管理部门网站景观设计公司资质
  • 河南郑州建设厅网站可以看禁止访问网站的浏览器
  • 企业网站建设的基本步骤最简单的wordpress主题
  • 网站软文推广好处前端静态资源如何部署到cdn上
  • 网站建设 佛山哪个网站做美食视频网站
  • 电子商务网站有哪些内容网站开发长春
  • 网站开发招标任务书做网站运营这工作怎么样
  • 汕头食品骏域网站建设设计之家官网首页
  • 网站开发是做啥的网页设计期末作业源码
  • 网站数据没有更新优秀网页设计作品案例欣赏
  • 学做吃的网站重庆农产品价格信息网
  • 公司建网站的步骤是什么厦门网页设计培训
  • 做任务网站源码网站开发外包合同模板
  • 注册网站要多久一般电商都是在哪些网站上做
  • 腾讯云备案 网站名称交互网站开发培训
  • 厦门做网站找哪家公司怎末把域名装wordpress
  • 可以做图接单的网站wordpress 验证码插件
  • 南昌盗网站少优化公司厦门网站开发公司哪家好
  • 当当网站建设的目标wordpress注册用户可见
  • 郑州做网站哪个周口网站关键词优化
  • 上海创意网站建设中国互联网协会曹伟