获取springboot中指定目录下 带有指定注解的类

复制代码
 private List<String> getTableNameList(){
        List<String> list = new ArrayList<>();
        PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
        //获取 包路径  classPath*: classpath*:com/lyc/**/*DO.class
        String pattern = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX + ClassUtils.convertClassNameToResourcePath("com.lyc") +"/**/*DO.class";
        try {
            Resource[] resources = resolver.getResources(pattern);
            CachingMetadataReaderFactory readerFactory = new CachingMetadataReaderFactory(resolver);
            for (Resource resource : resources){
                MetadataReader metadataReader = readerFactory.getMetadataReader(resource);
                // 扫描到的class
                String className = metadataReader.getClassMetadata().getClassName();
          // 这边已经获取到类信息了,但是我这边需要的是注解里面的信息 Class
<?> clazz = Class.forName(className); TableName annotation = clazz.getAnnotation(TableName.class); if ( annotation != null){ list.add(annotation.value()); } } } catch (IOException | ClassNotFoundException e) { e.printStackTrace(); } return list; }
复制代码

使用场景:获取TableName注解下面的所有表名

 

https://blog.csdn.net/sinat_39314995/article/details/107412600?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-107412600-blog-110822674.pc_relevant_layerdownloadsortv1&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-107412600-blog-110822674.pc_relevant_layerdownloadsortv1&utm_relevant_index=2

 

posted @   烟雨蒙尘  阅读(1282)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示