所谓 Bean 属性注入,简单点说就是将属性注入到 Bean 中的过程,而这属性既可以普通属性,也可以是一个对象(Bean)。
Spring 主要通过以下 2 种方式实现属性注入:
- 构造函数注入
- setter 注入(又称设值注入)
构造函数注入
我们可以通过 Bean 的带参构造函数,以实现 Bean 的属性注入。
使用构造函数实现属性注入大致步骤如下:
- 在 Bean 中添加一个有参构造函数,构造函数内的每一个参数代表一个需要注入的属性;
- 在 Spring 的 XML 配置文件中,通过 <beans> 及其子元素 <bean> 对 Bean 进行定义;
- 在 <bean> 元素内使用 <constructor-arg> 元素,对构造函数内的属性进行赋值,Bean 的构造函数内有多少参数,就需要使用多少个 <constructor-arg> 元素。
示例 1
下面我们就通过一个实例,来演示下如何构造函数注入的方式实现属性注入。
1. 新建一个名为 my-spring-demo 的 Java 项目,并在 src 下创建一个名为 net.biancheng.c 的包。
2. 参考《第一个Spring程序》,向项目中导入所需的 Jar 包。
3. 在 net.biancheng.c 包下,创建一个名为 Grade 的类,代码如下。
4. 在 net.biancheng.c 包下,创建一个名为 Student 的类,代码如下。
5. 在 src 目录下创建 Spring 配置文件 Beans.xml,配置如下。
6. 在 net.biancheng.c 包下,创建一个名为 MainApp 的类,代码如下。
7. 执行 MainApp 中的 main() 方法,控制台输出如下。