Spring构造函数
注意点
- spring 在getBean已经创建了对象,并且每个id的对象有且仅有一份。
<?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">
<!-- 1.默认调用无参构造-->
<bean id="User" class="pojo.User"/>
<!-- 2.当构造函数中参数有引用类型的时,并且有多个参数的时候。
可以使用参数的在构造函数的索引以及参数的类型来指定构造函数,但是name指定更佳。-->
<bean id="User1" class="pojo.User">
<constructor-arg name="name" value="huyong"/>
<constructor-arg name="age" value="21"/>
<constructor-arg name="thing" ref="Thing"/>
</bean>
<bean id="Thing" class="pojo.Thing">
<constructor-arg name="name" value="computer"/>
</bean>
</beans>
测试类
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import pojo.User;
public class MyTest {
@Test
public void test1(){
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
User user = (User)context.getBean("User1");
User user1 = (User)context.getBean("User1");
System.out.println(user);
System.out.println(user1==user);
}
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IEjipodn-1613183148798)(https://i.loli.net/2021/02/12/HIrFAc5KQGPOhV1.png)]