扫描指定路径下的全部请求路径(基于SpringMVC)
2017-08-06 11:19
267 查看
通过上面两篇博客,我们能够得到指定类上的全部请求路径。现在需要的是,给定一个指定的路径,获取全部的请求路径。
public class RequestUrlScannerHelper { /** * 以下三个参数通过IOC注入进来 */ private String basePackage; //扫描的基础包 private ResourcePatternResolver resolver; //解析器 private TypeFilter controlFilter = new AnnotationTypeFilter(Controller.class, false); private String pattern; private Set<Class<?>> matchControlerClass = new HashSet<Class<?>>(); /** * 根据basePackage得到全部的class文件,并进行匹配,将满足条件的class存储与set集合中。 * @throws IOException * @throws ClassNotFoundException */ @PostConstruct public void init() throws IOException, ClassNotFoundException { pattern = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX + ClassUtils.convertClassNameToResourcePath(basePackage) + "/**/*.class"; Resource[] resources = resolver.getResources(pattern); MetadataReaderFactory factory = new CachingMetadataReaderFactory(resolver); for(Resource resource : resources) { if(resource.isReadable()) { MetadataReader reader = factory.getMetadataReader(resource); if(controlFilter.match(reader, factory)) { matchControlerClass.add(Class.forName(reader.getClassMetadata().getClassName())); } } } } public String getBasePackage() { return basePackage; } public void setBasePackage(String basePackage) { this.basePackage = basePackage; } public ResourcePatternResolver getResolver() { return resolver; } public void setResolver(ResourcePatternResolver resolver) { this.resolver = resolver; } /** * * @return 指定包下的全部请求信息。 * @throws NoSuchMethodException * @throws SecurityException * @throws IllegalAccessException * @throws IllegalArgumentException * @throws InvocationTargetException */ public List<RequestUrlInfo> getAllRequestUrl() throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { List<RequestUrlInfo> infos = new ArrayList<RequestUrlInfo>(); for(Class<?> scannerClass : matchControlerClass) { infos.addAll(RequestUrlHelper.getInstance().getAllRequestUrlInfos(scannerClass)); } return infos; } }
相关文章推荐
- 读取指定文件夹下的全部文件,可通过正则进行过滤,返回文件路径数组 -- 基于node的一个函数
- SpringMVC(二):RequestMapping修饰类、指定请求方式、请求参数或请求头、支持Ant路径
- Java扫描classpath指定包路径下所有class
- SpringMVC 自动识别JSON与JSONP请求,返回基于FastJSON
- (不推荐使用)springMVC基本配置+继承MultiActionController来实现根据参数名指定要请求的方法
- springmvc 请求路径存在,后台也能断点到,但是返回到前台就是404
- 四、初学SpringMVC+Mybatis之Spring基于注解的组件扫描
- Java扫描指定文件路径下的文件并且递归扫描其子目录下的所有文件
- [置顶] 关于Idea基于maven创建springMvc项目中配置文件自动扫描找不到base-package问题
- @PathVariable指定请求的URL路径里面的变量
- Java扫描指定文件路径下的文件并且递归扫描其子目录下的所有文件
- openresty(完整版)Lua拦截请求与响应信息日志收集及基于cjson和redis动态路径以及Prometheus监控
- SpringMVC接收JSON请求参数时指定参数映射到Bean中的某个成员属性的方法
- 基于Java配置的springMvc处理请求
- openresty(完整版)Lua拦截请求与响应信息日志收集及基于cjson和redis动态路径以及Prometheus监控(转)
- springmvc国际化 基于请求的国际化配置
- SpringMVC请求路径问题
- Struts2注解指定Action扫描路径
- springmvc 请求路径的问题
- 学习springmvc的第六天(@PathVariable 注解、Ant字符匹配、指定请求方式)