为什么学习@Configuration

对于开发项目和业务来说,这个配置类注解用的不是特别多,用的不多不代表不重要,但是写框架的时候,这个就很重要了。
初次尝试一下,如何使用它进行对象加入容器
链接:

关于变化:
我们太过于熟悉@Component基础注解,就会抛弃@Configuration注解,但是真正解决变化问题,还是@Configuration注解。我们不仅仅学习@Configuration和@Component,还要学习搭配给出最优的解决方案,来应对变化问题

@Configuration可以这样

image.png
如果我们的Bean有一些成员变量,这些在注入的时候就要进行赋值,@Component就无法做到这样,我们需要使用@Configuration来进行操作了
image.png
@Configuration 可以返回多个Bean(同时讲多个Bean加入到容器中)
image.png
这样其实并不能完全解释Configuration注解

@Configuration其实就是配置类

他和@Servier很像,描述了类的职责,真正起作用的是他的基础注解Bean起到了很大的作用
你看可以进行构造函数传参,或者setting传参,这都是对一个类进行配置
因为变化需要隔离,我们可以把变化抽离到配置文件中,这就是spring为什么沉迷配置的原因,配置文件并不属于代码,修改配置文件并不是属于修改代码,就不算违反OCP原则。(以前配置文件是.xml文件,而现在是.java文件,只不过是文件扩展名不一样而已,他还是配置文件)

为什么变化要隔离到配置文件里面呢?
1. 配置文件具有集中性

  1. 配置文件比较清晰(没有业务逻辑),相对于代码里面修改,是很合理的

spring 的配置分类

  1. 传统的配置文件(application.properties),key:value的形式
  2. xml的配置 类/对象作为配置

通过配置配置文件 application.properties 加上@Configuration 制造成变化隔离
链接:链接,点我点我
这样的话,如果端口进行改变了,那么直接修改配置文件就可以了

还有两节没有看完,记得补上