SpringIOC之FilterType

博主介绍:✌全网粉丝5W+,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验✌

博主作品:《Java项目案例》主要基于SpringBoot+MyBatis/MyBatis-plus+MySQL+Vue等前后端分离项目,可以在左边的分类专栏找到更多项目。《Uniapp项目案例》有几个有uniapp教程,企业实战开发。《微服务实战》专栏是本人的实战经验总结,《Spring家族及微服务系列》专注Spring、SpringMVC、SpringBoot、SpringCloud系列、Nacos等源码解读、热门面试题、架构设计等。除此之外还有不少文章等你来细细品味,更多惊喜等着你哦

🍅uniapp微信小程序🍅面试题软考题免费使用,还可以使用ChatGPT,微信支付,扫码加群

点击这里预览

🍅开源项目免费哦 (有vue2与vue3版本): 击这里克隆或者下载 🍅

🍅文末获取联系🍅精彩专栏推荐订阅👇🏻👇🏻 不然下次找不到哟

Java项目案例《100套》

https://blog.csdn.net/qq_57756904/category_12173599.html
uniapp小程序《100套》

https://blog.csdn.net/qq_57756904/category_12199600.html

有需求代码永远写不完,而方法才是破解之道,抖音有实战视频课程,某马某千等培训都是2万左右,甚至广东有本科院校单单一年就得3万4年就12万学费,而且还没有包括吃饭的钱。所以很划算了。另外博客左侧有源码阅读专栏,对于求职有很大帮助,当然对于工作也是有指导意义等。在大城市求职,你面试来回一趟多多少少都在12块左右,而且一般不会一次性就通过,还得面试几家。而如果你对源码以及微服务等有深度认识,这无疑给你的面试添砖加瓦更上一层楼。

最后再送一句:最好是学会了,而不是学废了!!!

Spring 框架中的 FilterType 是一个枚举类型,用于在使用 @ComponentScan 注解时指定要包含或排除的组件类型。@ComponentScan 注解用于告诉 Spring 在哪里搜索组件类,以便将它们注册到容器中。

FilterType 枚举包括以下常量:

  1. ANNOTATION:这是默认的过滤类型。它表示按照指定的注解类型来筛选组件类。你可以使用 value 属性来指定要使用的注解类型,然后 @ComponentScan 注解会扫描并注册带有该注解的类。

    @ComponentScan(basePackages = "com.example", includeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, value = MyAnnotation.class))

  2. ASSIGNABLE_TYPE:这个过滤类型表示按照指定的类(或接口)来筛选组件类。只有那些与指定类型相同或是其子类的组件类会被包括。

    @ComponentScan(basePackages = "com.example", includeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = MyService.class))

  3. ASPECTJ:这个过滤类型表示按照 AspectJ 表达式来筛选组件类。AspectJ 表达式允许更复杂的匹配规则,可以根据类名、方法签名、注解等来筛选组件。

    @ComponentScan(basePackages = "com.example", includeFilters = @ComponentScan.Filter(type = FilterType.ASPECTJ, pattern = "com.example..service."))

  4. CUSTOM:这个过滤类型表示使用自定义的 TypeFilter 实现类来筛选组件。你需要实现 TypeFilter 接口并在 value 属性中指定自定义过滤器的类。

    @ComponentScan(basePackages = "com.example", includeFilters = @ComponentScan.Filter(type = FilterType.CUSTOM, value = MyCustomFilter.class))

  5. REGEX:这个过滤类型表示使用正则表达式来筛选组件类。只有与正则表达式匹配的组件类会被包括。

    @ComponentScan(basePackages = "com.example", includeFilters = @ComponentScan.Filter(type = FilterType.REGEX, pattern = ".*Repository"))

  6. ANNOTATION自定义注解:除了上述常见的过滤类型,你还可以使用自定义注解类型,将其与 ANNOTATION 结合使用,以便使用自定义注解来筛选组件类。

    @ComponentScan(basePackages = "com.example", includeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, value = MyCustomAnnotation.class))

这些过滤类型允许你更精细地控制哪些组件类会被包含或排除在 @ComponentScan 注解的扫描中。它们提供了多种筛选组件的方式,可以根据不同的条件和需求进行配置。

相关推荐
蛋蛋的就会顺顺的6 小时前
hot100 p0——栈,贪心算法,动态规划
java·前端·javascript·算法·leetcode·力扣
需要8267 小时前
Spring Bean 生命周期:从实例化到销毁的完整钩子
java·后端·spring
小 黄 鸡7 小时前
HashMap 面试必会知识点详解(JDK 8)
java·面试·职场和发展
伯恩bourne9 小时前
Spring Boot Bean 注册的两种方式:@Component 家族 vs @Configuration + @Bean
java·spring boot·后端
silvamux_9 小时前
curl 测试 OpenAI 兼容 API 的完整流程
java·人工智能·缓存·ai·oneapi
省钱兄--zs10 小时前
深圳24小时自助健身房软硬件解决方案实战指南与开发流程详解
java·数据仓库·spring boot·小程序·架构
顽疲10 小时前
Java vue 养老系统源码详解:月账单 care_month_bill 与 Quartz 扣费 Job 实践
java·开发语言·vue.js·vue养老·springboot养老·java养老
Wang's Blog10 小时前
Java 项目实战: 交友项目 - 安装开发工具与环境准备
java·开发语言·交友
用户212968352616810 小时前
开源了一个 Java 多智能体 LLM 框架 Baton:一个依赖,把 Agent 循环、工具调用、记忆、编排全配齐
java·llm
helmsail11 小时前
05 管理活动与选品
java