版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40788630/article/details/82792611
在面向对象的程序中,想要使用某个对象就需要先实例化这个对象,同样在Spring中,要想使用容器中的Bean,也需要实例化Bean。今天主要学习使用构造器实例化
构造器实例华是指Spring容器通过Bean对应类中默认的构造方法来实例化Bean。下面通过一个案例来演示Spring容器是如何通过构造器来实例化Bean的。
1、在Eclipse中,创建一个名为chapter02的web项目,在该项目的lib目录中加入Spring支持和依赖的jar包(不清楚的请查看Spring入门程序)
2、在chapter02项目的src目录下,创建一个com.itheima.instance.constructor包,在该包中创建Bean1类,如下图所示:
package com.itheima.instance.constructor;
public class Bean1 {
}
3、在com.itheima.instance.constructor包中,创建Spring的配置文件beans1.xml,在配置文件中定义一个id为bean1的Bean,并通过class属性指定其对应的实现类为Bean1,如下面代码所示:
<?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.xsd">
<bean id="bean1" class="com.itheima.instance.constructor.Bean1"></bean>
</beans>
4、在com.itheima.instance.constructor包中,创建测试类InstanceTest1,来测试是否能实例化Bean,代码如下:
package com.itheima.instance.constructor;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class InstanceTest1 {
public static void main(String[] args) {
//定义配置文件路径
String xmlPath = "com/itheima/instance/constructor/beans2.xml";
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath);
Bean1 bean = (Bean1) applicationContext.getBean("bean1");
System.out.println(bean);
}
}
5、在上面的代码中,首先定义了配置文件的路径,然后Spring容器ApplicationContext会加载配置文件,在加载时,Spring容器会通过id为bean1的实现类Bean1中默认的无参构造方法对Bean进行实例化。执行程序后,控制台的输出结果如下图所示:
可以在输出结果中看到Bean1的离散值@d2e7d9(不同的电脑得出的离散值不同)