Spring-IOC创建对象的方式
在执行getBean时,对象就已经被创建了,且同样的对象只会被创建一次,通过下面的无参构造进行说明
1.通过无参构造方法来创建
注:第一个Spring程序为Hello Spring篇
在第一个Spring程序的基础上在User实体类中添加手动添加一个无参构造,打印一句User对象被创建
在测试类中编写代码
import com.feng.pojo.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.GenericGroovyApplicationContext;
public class MyTest {
public static void main(String[] args) {
ApplicationContext context = new GenericGroovyApplicationContext("beans.xml");
User hello1 = (User) context.getBean("hello");
User hello2 = (User) context.getBean("hello");
User hello3 = (User) context.getBean("hello");
}
}
测试结果为
由此可见:在执行getBean时,对象就已经被创建了,且同样的对象只会被创建一次
2.通过有参构造方法来创建
首先需要在实体类中,编写有参构造
第一种:通过index下标就行赋值
<bean id="user" class="com.feng.pojo.User">
<constructor-arg index="0" value="Spring"/>
</bean>
第二种:通过参数的类型进行赋值,且在相同数据类型的情况下,根据先后顺序进行赋值
<bean id="user" class="com.feng.pojo.User">
<constructor-arg type="java.lang.String" value="Spring"/>
</bean>
第三:通过参数名进行赋值(推荐)
<bean id="user" class="com.feng.pojo.User" name="user2">
<constructor-arg name="name" value="Spring"/>
</bean>