IOC创建对象的方式
1.使用无参构造方法创建对象,默认的!!
package com.ni.pojo;
public class User {
private String name;
public void User(){
System.out.println("User的无参构造");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void show(){
System.out.println("name"+name );
}
}
import com.ni.pojo.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Mytest {
public static void main(String[] args) {
//拿到beans里的东西
ApplicationContext Context = new ClassPathXmlApplicationContext("beans.xml");
//赋值和声明 将Context转化为user
User user = (User) Context.getBean("user");
user.show();
}
}
<?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
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="User" class="com.ni.pojo.User">
<property name="name" value="倪勇">
</property>
</bean>
</beans>
2.有参构造方法创建对象
2.1下标赋值
解释一下这里的< constructor-arg >是构造方法注入xml其中的一种方法。而index是它的一种属性指标,“0”“1”表示第几个参数,“0”表示第一个参数,value表示你要给第一个参数所赋的值。
<!--下标赋值-->
<bean id="User" class="com.ni.pojo.User">
<constructor-arg index="0" value="小倪喜欢吃蛋糕"/>
<constructor-arg index="1" value="小倪不喜欢吃蛋糕"/>
</bean>
2.2属性赋值
type也是< constructor-arg >是构造方法中的一种属性,它是通过参数的属性来给参数赋值的,比如你的属性是String那调用type会指定到属性为String的参数,再进行赋值。
<!--属性赋值-->
<constructor-arg type="String" value="蛋糕不好吃"/>
2.3直接通过参数名
<!--直接通过参数名-->
<constructor-arg name="user" value="蛋糕真难吃"/>
总结:在配置文件加载的时候,容器中管理的对象就已经初始化了。