IOC创建对象方式
1.使用无参构造创建对象,默认!
2.假设我们要使用有参构造创建对象。
- 下标赋值
<bean id="user" class="com.tian.pojo.User">
<constructor-arg index="0" value="张三"/>
</bean>
- 类型(不建议)
<!--第二种 通过类型创建 不建议使用-->
<bean id="user" class="com.tian.pojo.User">
<constructor-arg type="java.lang.String" value="王五"/>
</bean>
- 参数名(建议使用)
<!-- 建议使用 -->
<bean id="user" class="com.tian.pojo.User">
<constructor-arg name="name" value="赵六"/>
</bean>
代码演示
User
package com.tian.pojo;
public class User {
private String name;
//public User(){}
public User(String name){
this.name = name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
'}';
}
public void show(){
System.out.println("name:"+name);
}
}
beans.xml
<?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.tian.pojo.User">-->
<!-- <property name="name" value="张三"/>-->
<!-- </bean>-->
<!-- 有参构造 第一种,下标赋值-->
<!-- <bean id="user" class="com.tian.pojo.User">-->
<!-- <constructor-arg index="0" value="李四"/>-->
<!-- </bean>-->
<!--第二种 通过类型创建 不建议使用-->
<!-- <bean id="user" class="com.tian.pojo.User">-->
<!-- <constructor-arg type="java.lang.String" value="王五"/>-->
<!-- </bean>-->
<!-- 建议使用 -->
<bean id="user" class="com.tian.pojo.User">
<constructor-arg name="name" value="赵六"/>
</bean>
</beans>
测试
import com.tian.pojo.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MyTest {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
User user = (User) context.getBean("user");
user.show();
}
}