| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> Spring框架开发底层的@Component 通用组件模式、@Service 服务模式、@Configuration 配置模式等注解装配技术详解 -> 正文阅读 |
|
[Java知识库]Spring框架开发底层的@Component 通用组件模式、@Service 服务模式、@Configuration 配置模式等注解装配技术详解 |
Spring模式注解装配(Stereotype Annotations)模式注解定义一种用于声明在应用中扮演“组件”角色的注解。 常用模式注解整理如 Spring 中的 @Repository 是用于扮演仓储角色的模式注解,用来管理和存储某种领域对象。 还有如@Component 是通用组件模式、@Service 是服务模式、@Configuration 是配置模式等。
@Component作为Spring容器托管的通用模式组件
? 可以看到,@Service确实被@Component标注了,所以被@Service注解的组件也将会被Spring容器扫描到。 模式装配方式2种形式<context:component-scan>方式XML配置文件的方式,通过 base-package 这个属性指定扫描某个范围内所有被 @Component 或者其派生注解标记的类(Class),将它们注册为 Spring Bean。 我们都知道XML Schema 规范,标签需要显示地关联命名空间,如配置文件中的 xmlns:context="http://www.springframework.org/schema/context" ,且需要与其处理类建立映射关系,而该关系维护在相对于 classpath 下的/META-INF/spring.handlers 文件中。如下: 可以看到, context 所对应的处理器为 ContextNamespaceHandler ?这里当Spring启动时,init方法被调用,随后注册该命名空间下的所有 Bean 定义解析器,可以看到 <context:component-scan /> 的解析器为 ComponentScanBeanDefinitionParser ,具体的处理过程就在此类中。 ?如上图所示,通过xml配置的方式,<context:annotation-config />激活注解驱动特性, context:component-scan base-package=”com.itdebug.spring.boot” />指定扫描组件的根路径,将被@Component注解的类加载进Spring容器。 @ComponentScan方式:
Spring 在启动时,会在某个生命周期内创建所有的配置类注解解析器,而 @ComponentScan 的处理器为 ComponentScanAnnotationParser。 只需要在主配置类上添加@ComponentScan(value="需要扫描的包名前缀")注解即可。 派生性的自定义注解的方式
可以看到,自定义了一个@FirstLevelRepository 注解,当前注解又标注了 @Repository,而 @Repository 又标注了 @Component 并且注解属性一致(String value() default""),那么就可以表示当前注解包含了 ?派生性其实可以分为多层次的,如 ?使用@Configuration注解原理@Configuration ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/29 5:54:33- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |