Bean定义
bean 是一个被实例化,组装,并通过 Spring IoC 容器所管理的对象。这些 bean 是由IOC容器读取Bean的配置元数据创建的。
Bean属性

<?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-3.0.xsd">
<bean id="..." class="..." scope="...">
<!-- -->
</bean>
<bean id="..." class="..." lazy-init="true">
<!-- -->
</bean>
<bean id="..." class="..." init-method="...">
<!-- -->
</bean>
<bean id="..." class="..." destroy-method="...">
<!-- -->
</bean>
<!-- 其他配置 -->
</beans>
Bean 与Spring容器关系

Spring 配置元数据
Spring IoC 容器完全由实际编写的配置元数据的格式解耦。有下面三个重要的方法把配置元数据提供给 Spring 容器:
- 基于 XML 的配置文件
- 基于注解的配置
- 基于 Java 的配置
Bean 的作用域

Bean 的生命周期
Bean的生命周期可以表达为:Bean的定义——Bean的初始化——Bean的使用——Bean的销毁
Bean 继承
bean 定义可以包含很多的配置信息,包括构造函数的参数,属性值,容器的具体信息例如初始化方法,静态工厂方法名,等等。
子 bean 的定义继承父定义的配置数据。子定义可以根据需要重写一些值,或者添加其他值。
Spring Bean 定义的继承与 Java 类的继承无关,但是继承的概念是一样的。你可以定义一个父 bean 的定义作为模板和其他子 bean 就可以从父 bean 中继承所需的配置。
<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-3.0.xsd">
<bean id="helloWorld" class="com.xxx.xxx.HelloWorld">
<property name="message1" value="Hello World!"/>
<property name="message2" value="Hello Second World!"/>
</bean>
<bean id="helloWorldC" class="com.xxx.xxx.HelloWorldC" parent="helloWorld">
<property name="message1" value="Hello!"/>
<property name="message3" value="Children India!"/>
</bean>
</beans>
https://zhuanlan.zhihu.com/p/68818095