《Spring Boot 3:高级与架构设计》第 1 章 元编程与元信息 个人理解 1

《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)......

相关推荐
光依旧3 小时前
MCP实战手记系列(十):MCP Server高可用实战
spring boot·高可用·nginx负载均衡·redis哨兵·mcp·微服务容错·resilience4j熔断
Sarvartha3 小时前
final 关键字
java·开发语言
2601_952047793 小时前
单一策略深度教程:用轻易云把集成任务的报错实时推送到钉钉机器人
java·机器人·钉钉
yi0113 小时前
LeetCode 219:存在重复元素 II——哈希表记录“最近一次出现的位置”
数据结构·人工智能·笔记·python·算法·leetcode·哈希表
数据狐(Datafox)4 小时前
淘宝图片搜索 API 落地实战:基于以图搜货搭建跨境电商选品系统
java·大数据·微服务
志尊宝4 小时前
Vue3 零基础每日笔记(073):keep-alive 页面缓存实战——列表页返回不丢状态
vue.js·笔记·缓存·#vue #前端 #前端开发·#javascript·#vue.js
刚子编程5 小时前
我用 ASP.NET Core 做了个水稻病虫害检查系统
后端·asp.net
谢亮_vipxieliang5 小时前
用 PHP 构建轻量级 REST API:从路由到鉴权的完整实践
开发语言·后端·php