首页
App
&
Coffee
文档
项目
分享
反馈
俱乐部
登录
注册
scan路由扫描问题
java填坑分
2020-12-24 15:03
scan路由扫描com包报错如果加上cofig就没事
项目:
JFinal
评论区
JFinal
2020-12-24 15:07
报什么错?
回复
java填坑分
2020-12-24 15:10
java.lang.NoClassDefFoundError: org/springframework/beans/factory/FactoryBean
回复
java填坑分
2020-12-24 15:13
报错内容找不到factoryBean
回复
java填坑分
2020-12-24 15:17
这样就能扫描成功:me.scan("com.config.");
回复
java填坑分
2020-12-24 15:25
@JFinal
报错内容找不到factoryBean
回复
JFinal
2020-12-24 15:30
@java填坑分
报错找不到 factoryBean,这个肯定与 jfinal 无关了
因为 jfinal 诞生十年来,从来都没提到过什么 factoryBean,这东东是 spring 里的东东
jfinal 的 scan 只扫描
@Path
注解,绝不理会其它任何东东
回复
JFinal
2020-12-24 15:32
扫描代码很简单,一共才一百多行 java 代码:
https://gitee.com/jfinal/jfinal/blob/master/src/main/java/com/jfinal/core/PathScanner.java
只关注
@Path
注解,其它一概跳过,所以,绝对不可能出现 factoryBean 这种字眼
回复
java填坑分
2020-12-24 15:33
@JFinal
那为什么加上me.scan("com.config.")这样就能扫描成功呢
回复
java填坑分
2020-12-24 15:34
@JFinal
只扫描com就报错
回复
java填坑分
2020-12-24 15:35
@JFinal
new PathScanner(basePackage, this, classFilter).scan();这个只扫描com里面的path是空的估计是这个错误引起的
回复
JFinal
2020-12-24 15:46
@java填坑分
jfinal 源码只有 3 万行,里头没有 factoryBean 字眼,肯定是不会出这个异常的
你那里出现了 factoryBean 字眼,证明肯定是 jfinal 之外的因素,例如你的项目中同时用到了 spring ,而 spring 抛出了 factoryBean 有关的异常
回复
JFinal
2020-12-24 16:38
@java填坑分
你的问题让我发现一个值得改进的地方:
https://gitee.com/jfinal/jfinal/commit/1dc557f53cafb08d61145a3d6d50d3ec1116ec55
也就是说,扫描是一种主动行为,那么 pom.xml 中的 provided 依赖在某种情况下会被扫描并被 loadClass,从而抛出 ClassNotFoundException、NoClassDefFoundError 异常
但如果你将扫描的包限定在你自己的项目之中,扫描范围有限,一般碰不到这种情况
最后,这个仍然与你碰到的 factoryBean 异常无关
回复
JFinal
2020-12-24 16:40
补充一下,我看到你的扫描范围很大,或许也会碰到 ClassNotFoundException 的问题,可以用一下未发布到中心库的最新版本,用法如下:
https://jfinal.com/share/2093
元旦节那天我再发个新版本
回复
java填坑分
2021-01-07 10:14
谢了,解决了我自己又加了一层包,其实你可以给个设定参数让用户自己设定扫描地址
回复
JFinal
2021-01-07 11:34
@java填坑分
新版本 2021 年 1 月 1 号已经发布到 maven 中心库了,你使用 scan("com.") 也支持了
用新版本试一试
回复
java填坑分
2021-02-19 16:55
好的谢了啊波总
回复
发送
我要反馈
热门反馈
扫码入社