1.Ioc创建对象的方式
1.使用无参构造对象方法(默认)
2.使用有参构造对象方法
下标赋值
<bean id="user" class="com.kuang.user.User">
<constructor-arg index="0" value="superman"></constructor-arg>
通过类型创建
<!--通过类型创建 不建议使用 -->
<bean id="user" class="com.kuang.user.User">
<constructor-arg type="java.lang.String" value="super"></constructor-arg>
</bean>
通过参数名设置
<!-- 直接通过参数名设置-->
<bean id="user" class="com.kuang.user.User">
<constructor-arg name="name" value="sper"></constructor-arg>
</bean>
package com.kuang.user;
public class User {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void show(){
System.out.println(name);
}
}
<?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="user" class="com.kuang.user.User">
<property name="name" value="superman"></property>
</bean>
</beans>
import com.kuang.user.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class UserTest {
public static void main(String[] args) {
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
User user = (User) applicationContext.getBean("user");
System.out.println(user);
System.out.println("================");
user.show();
}
}
总结:在配置文件加载的时候,容器中管理的对象就已经初始化了!
import com.kuang.user.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class UserTest {
public static void main(String[] args) {
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
User user = (User) applicationContext.getBean("user");
User user2 = (User) applicationContext.getBean("user");
//Spring实例化对象只有一个
System.out.println(user==user2);
System.out.println(user);
System.out.println("================");
user.show();
}
}