《Spring Boot 3:高级与架构设计》第 1 章 元编程与元信息 个人理解 1
1 什么是元
"元" 这个概念可以用来解释或者定义一个概念。
例如使用性能的高低描述计算机的运行速度,性能具体表示什么,
解释性能具体表示什么的概念,就是元。
2 什么是元编程
理解元编程前,先理解编程的概念,编写代码实现需求的过程称为编程。
元编程指的是通过提前编写好的程序去编写代码实现需求的过程。
例如,基于 MyBatis CRUD(增删改查)场景的代码生成器就是元编程的一种体现,通过读取数据库表结构生成相应的 PO、Mapper 等基础代码。
3 什么是配置源
配置源及配置的来源。
在基于 Spring Framework 的案例中,驱动 IOC 容器有两种常见的方式,基于 XML 配置文件和基于注解配置类。XML 配置文件和注解配置类就是 IOC 容器的配置源。
在基于 SpringBoot 的案例中,通常使用注解配置类和自动配置类完成组件注册。注解配置类和自动配置类就是 SpringBoot 工程的配置源。
(自动配置类在具体的代码编写上与常规的注解配置类大体没有区别,只是标注配置类的注解由 @Configuration 变为 @AutoConfiguration,并且可以在类上声明当前类生效的条件等。)
4 什么是元信息
元信息也叫元定义。元信息就是定义信息,例如对象的元信息即对象的定义信息,例如类中包含对象的定义信息。
按照 【1 什么是元】中的理解,定义的定义就是元信息。
例如张三的定义是,属于 Person,name 是张三,age 是18,gender 是男。
那么 Person 的定义就可以理解为,Person {name, age, gender} ,Person 类型有 name, age, gender 三个属性。
Person {name, age, gender} 就是张三的元信息。
结合 Java 面向对象编程思想,
Person 是类,张三 Person 类的一个对象,Person 中包含张三的元信息,即类中包含对象的元信息。对象的元信息即对象的定义信息。
类中包含对象的元信息,那么谁包含类的元信息,Java 中有一个类就叫做 Class,包含类的元信息,类的元信息即类的定义信息。
5 Bean 的元信息是什么
跟 Class 包含类的元信息类似,在 Spring Framework 中,BeanDefinition 包含 Bean 的元信息,即 BeanDefinition 包含了 Bean 的定义信息。
Bean 的定义信息包括:
(1)Bean 的全限定名(className);
(2)Bean 的作用域(scope);
(3)Bean 是否延迟加载(lazy);
(4)Bean 的工厂 Bean 名称(factoryBean);
(5)Bean 的构造方法参数列表(constructorArgumentValues);
(6)Bean 的属性值(propertyValues)。
(7)......