IOC配置源与元信息

93 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第31天,点击查看活动详情

配置源

这里的配置源可不是数据源,指的是配置的来源。

之前提到过spring可以采用xml或注解来驱动IOC容器,而这里的xml配置文件或注解配置类就可以理解为IOC的配置源了。我们通过两种方式写好配置源后,spring会先加载再解析最后注册配置源中定义的Bean到IOC容器中去。

xml配置文件解析

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean class="com.lyz.lifecycle.a_initmethod.bean.Cat" init-method="init" destroy-method="destroy">
        <property name="name" value="mimi"/>
    </bean>
</beans>

这是我们之前写过的一个xml配置文件,该文件中包含头部信息、标签,那我们就可以简单概括成beans.xml{ beans:[Cat]}这样子,对于配置类也可以这样来,只记录它的结果而不记录具体内容。当然这是我们自己的思路,和spring关系不大,理解这种思想即可。

元信息

元信息是什么呢?

举个例子来说:汪汪,阿拉斯加,李一。那他们的元信息属性就是Dog{name, type, master},有点类似于属性和类。其实元信息就说元定义,想想java基础中学的元注解,元注解是什么,注解的注解。元定义也可以这么理解,定义的定义,那么元信息就说定义的定义。

spring中的元信息

Bean的配置元信息

像bean标签下的scope、class(全限定名)、init-method、property等属性都可以理解成Bean的配置源信息。当然咱们只是提到了片面,Spring中bean的元信息还有很多。

IOC容器配置元信息

个人觉得这个不是重点,了解一下就行。IOC容器的元信息主要分为beans和context两类,像前面列出的xml文件就包含了beans的元信息,如下图你会发现beans是有属性的,如bean、alias、import等。

image.png context也是如此的,要用到context需要我们导入下面代码:

xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">

context的属性也出来了。 image.png