多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
``` public static void main(String[] args)throws Exception { ClassLoader cl = xxxx.class.getClassLoader(); Enumeration resourceUrls =cl.getResources("com/souche/"); while(resourceUrls.hasMoreElements()) { URL url = (URL)resourceUrls.nextElement(); } } ``` 1. 可以搜索符合给定路径下的所有文件 2. 按理说这样应该可以搜索到我项目里面的所有的com.souche包目录下的文件。 然而发现,com.souche.api.service没有被扫描到。 排查之后发现,该ClassLoader.getResources只能搜索到该类加载器所在的mudule层 以及其依赖的相关mudule层内的路径。 比如说 com.souche.web 依赖 com.souche.service 和com.souche.common ,如果xxxx.class 处于web层,那么 该资源加载器可以搜索到这三个包的内容。 如果 如果xxxx.class 处于service层 ,那么只能搜到service和common。 如果要搜索的目标 跟该类所在的mudule 都没有依赖关系,那么无法被搜索到。 ClassLoader.getResources是加载该类所在的根目录内的资源。一般也就是该mudule层所在的target/classes目录下的资源。