metadata:元数据

Spring configuration metadata则是告知Spring容器:

  • 如何初始化,配置,包裹,和组合应用内特定的对象。

Spring从2002年发布第一版到至今最新版,提供了三种方式去进行应用配置:

  1. XML-based Configuration: 所有的配置信息存放于多个XML文件中,这也是最冗长繁琐的配置方式。超大型项目们,需要配置超大量的XML文件。想象下就可知道有多难以管理吧?
  2. Annotation-based Configuration:Spring 2.5 开始引入基于注解的配置方式,我们仍然需要写XML文件,但现在只需要告知Spring去"component-scan"注解类所在的package即可。
  3. Java-based configuration (JavaConfig): 从3.0开始,Spring提供一种纯Java代码的配置方式。我们不再需要写大量的XML文件了。JavaConfig方式为依赖注入提供了一种真正的面向对象机制,意味着我们可以在配置代码中充分地使用Java语言的可重用性,继承性和多态性。开发者完全掌控了应用中bean的初始化和各项依赖注入的关系等等。

在这篇文章中我们只关注如JavaConfig。熟识其中一种方式已经足够去理解Spring容器的关键特性了。

无论我们使用哪种方式,如上图所示,我们只需要在三处地方使用configuration metadata:

  1. Injection Points:这是各项依赖关系必须被注入的地方。注入点一般都是bean Class中的fields/setters/constructors. Spring在bean loading阶段中把相应的对象实例注入到注入点中。
  2. Service Providers:这是各项Service的具体实现类,他们的实例对象会被注入到各个bean的Injection Points中。这些Service Providers类本身会在Spring Container中被初始化,并被登记注册为Spring beans,而且他们自身也可以拥有注入点。
  3. The Configuration:这里是被@Configuration注解的Java类。同时也是我们定义依赖关系的地方。

Spring - Configuration Metadata相关推荐

  1. Spring @Configuration和@Component的区别(enhancer的原因)

    Spring @Configuration 和 @Component 区别 一句话概括就是 @Configuration 中所有带 @Bean 注解的方法都会被动态代理,因此调用该方法返回的都是同一个 ...

  2. Spring @Configuration – RabbitMQ连接

    我一直在转换必须使用Spring @Configuration机制配置到RabbitMQ的连接的应用程序-最初,我使用xml bean定义文件来描述配置. 这是我的原始配置: <beans .. ...

  3. Spring @Configuration和FactoryBean

    考虑使用FactoryBean通过Spring配置文件定义缓存: <cache:annotation-driven /><context:component-scan base-pa ...

  4. 解决 Unmapped Spring configuration files found.Please configure Spring facet.

    最近在学习使用IDEA工具,觉得与Eclipse相比,还是有很多的方便之处. 但是,当把自己的一个项目导入IDEA之后,Event Log提示"Unmapped Spring configu ...

  5. IDEA Unmapped Spring configuration files found.

    2019独角兽企业重金招聘Python工程师标准>>> Spring Configuration Check    Unmapped Spring configuration fil ...

  6. Unmapped Spring configuration files found. Please configure Spring facet or use 'Create Default Con

    今天打开项目,突然报了上面的警告,没在意,运行Tomcat时报错如下错误!! 原因是web工程中的spring配置文件没有被IDEA所管理 Error:Internal error: (java.la ...

  7. Spring configuration check

    参考:https://blog.csdn.net/fighting_wzc/article/details/78960045?utm_medium=distribute.pc_relevant_t0. ...

  8. Unmapped Spring configuration files found.Please configure Spring facet.”解决办法

    最近在学习使用IDEA工具,觉得与Eclipse相比,还是有很多的方便之处. 但是,当把自己的一个项目导入IDEA之后,Event Log提示"Unmapped Spring configu ...

  9. 【IntelliJ IDEA教程】提示信息Unmapped Spring configuration files found.Please configure Spring facet. 解决办法

    [IntelliJ IDEA教程]提示信息Unmapped Spring configuration files found.Please configure Spring facet. 解决办法 在 ...

最新文章

  1. 新手入门深度学习 | 2-1:图像数据建模流程示例
  2. nodejs渐入佳境[8]-json处理
  3. 工业用微型计算机笔记(3)-存储单位与基本组成
  4. 【二分答案】Problem C:木材加工
  5. JavaScript返回上一页代码区别
  6. 动态通讯录(动态内存开辟)(C语言)
  7. 单片机长按开关怎么控制_时控开关控制电铃怎么接线?
  8. Elasticsearch版本控制理解
  9. 在知网下载硕士的论文PDF格式无需安装CAJ软件
  10. Ubuntu上Qt5+OpenCV配置
  11. MFC动态修改Static Text控件caption
  12. python安装菜鸟教程_Python菜鸟教程 | 多平台安装
  13. STM32CubeIDE 遇到的问题
  14. MySQL的SQL基础(五)
  15. 微分,变分,差分的确切定义与区别
  16. Android 9.0以上联网报错:CLEARTEXT communication to xxx.xxx.xxx.xx not permitted by network security policy
  17. 为何,以及如何提炼一个函数
  18. 怎样选数据分析培训机构,靠谱的数据分析培训机构有哪些
  19. STM32串口烧录BIN文件、字库文件【QT上位机】- Uart_Transfer_BIN_to_EX_FLASH
  20. 为什么要去考阿里云计算ACP认证?

热门文章

  1. requestIdleCallback函数
  2. Node的textContent属性
  3. linux6.3 插u盘,U盘安装centos 6.3教程(超级详细教程)
  4. java 发送邮件_Spring Boot (十二):Spring Boot 邮件服务
  5. 腾讯云服务器CentOS 7安装JAVA JDK并运行class文件
  6. eclipse输入中文乱码,问题已解决
  7. hive hsql 漏斗模型_数据分析之SQL:常用模型
  8. 20200410:路径总和 Ⅰ Ⅱ(leetcode112 /113)
  9. mysql负载时高时低_Mysql服务器负载很高,性能问题排查思路是怎样的?
  10. spark的朴素贝叶斯分类原理