通过 Maven 导入 Spring 的相关依赖(spring-context
)
编写 Spring 的配置文件
IDEA 可以直接创建 Spring 的配置文件
创建类型
package pro.rennen.basic;
public class Person {
}
编写 Spring 的配置文件
<bean id="person" class="pro.rennen.basic.Person"></bean>
通过工厂类,获得对象
@Test
public void test3(){
ApplicationContext ctx = new ClassPathXmlApplicationContext("/applicationContext.xml");
Person person = (Person) ctx.getBean("person");
System.out.println(person);
}
Spring 工厂创建的对象叫做 Bean 或者组件(Component)
Spring 工厂的相关方法
配置文件中需要注意的细节
<bean class="com.baizhiedu.basic.Person"/>
com.baizhiedu.basic.Person#0
用于在 Spring 的配置文件中,为 bean 对象定义别名(小名)
ctx.getBean("id|name")-->object
,<bean id="" class="”
等效 <bean name="" class="”
别名可以定义多个(逗号分隔),但是 id 属性只能有一个值
id 命名有要求,name 命名无要求
代码区别
//用于判断是否存在指定id值得bean,**不能判断name值**
if (ctx.containsBeanDefinition("person")) {
System.out.println("true = " + true);
}else{
System.out.println("false = " + false);
}
//用于判断是否存在指定id值得bean,**也可以判断name值**
if (ctx.containsBean("p")) {
System.out.println("true = " + true);
}else{
System.out.println("false = " + false);
}
<aside> 💡 Spring 可以调用对象的私有构造方法创建对象,因为其用到了反射的原理
</aside>
<aside> ❓ 未来在开发过程中,是不是所有的对象,都会交给Spring工厂来创建呢?
理论上是的,但是有特例:实体对象(entity)是不会交给 Spring 创建的,它是由持久层框架创建的
</aside>