这里主要是一个对于后面的铺垫,铺垫一个元信息的概念,所以这一节也非常简单,内容也比较少。
1. Spring 中的元信息
不管是八股文也好,还是哪里,或许你有听过 BeanDefinition 它其实就是 Spring 中对于每个 Bean 定义的元信息,它其中保存了定义或者说描述一个 Bean 的定义,比如:
- Bean 的全限定名 className
- Bean 的作用域 scope
- Bean 是否延迟加载 lazy
- Bean 的工厂 Bean 名称 factoryBean
- Bean 的构造方法参数列表 constructorArgumentValues
- Bean 的属性值 propertyValues
2. IOC 容器的元信息
所以对于元信息来说,似乎好理解一些了,就像类和对象的感觉一样,类就是描述了对象的原信息,或者说数据库表结构也是。
而 IOC 容器中的元信息主要在 beans 和 context 标签中体现。2.1 beans
配置元信息 | 含义 / 作用 | 默认值 |
---|---|---|
profile | 基于环境的配置 | “” |
default-autowire | 默认的自动注入模式(不需要声明 @Autowired 等注解即可注入组件) |
default(no) |
default-autowire-candidates | 满足指定属性名规则的属性才会被自动注入 | “” |
default-init-method | 全局 bean 的初始化方法 | “” |
default-destroy-method | 全局 bean 的销毁方法 | “” |
default-lazy-init | 全局 bean 是否延迟加载 | default(false) |
default-merge | 继承父 bean 时直接合并父 bean 的属性值 | default(false) |
上面只是写了了
配置元信息 | 含义 / 作用 | 使用方式举例 |
---|---|---|
给指定的 bean 指定别名 | ||
导入外部现有的 xml 配置文件 |
2.2 context
配置元信息 | 含义 / 作用 |
---|---|
<context:annotation-config/> |
开启注解驱动 |
<context:component-scan/> |
开启组件扫描 |
<context:property-placeholder/> |
引入外部的资源文件( properties xml yml 等) |
<context:property-override/> |
指定配置源会覆盖全局配置(可用于配置覆盖) |
<context:spring-configured/> |
可以对没有注册到 IOC 容器的 bean 实现依赖注入 |
<context:load-time-weaver/> |
与 AOP 相关(放到 AOP 章节介绍) |
<context:mbean-server/> |
暴露应用运行状态监控(与 JMX 管理监控有关) |
<context:mbean-export/> |
注册 MBean 到 JMX 实现运行状态监控(与 JMX 管理监控有关) |