一、
在类中写一个有参数的构造方法,在xml配置文件中用调用有参数的构造方法来创建对象并对对象进行赋值
Person类
package Test;
public class Person {
private String name;
private int age;
private String grade;
private String email;
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + ", grade=" + grade + ", email=" + email + "]";
}
public Person() {
// TODO Auto-generated constructor stub
}
public Person(String name, int age, String grade, String email) {
super();
this.name = name;
this.age = age;
this.grade = grade;
this.email = email;
System.out.println("有参构造方法");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
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 http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 注册一个Person对象,Spring会自动创建这个Person对象 -->
<!-- 一个bean标签注册一个组件
class:写要注册的组件的全类名(包名加类名)
id:这个对象的唯一标识
-->
<bean class="Test.Person" id="person03">
<constructor-arg name="name" value="小明"></constructor-arg>
<constructor-arg name="age" value="12"></constructor-arg>
<constructor-arg name="grade" value="四"></constructor-arg>
<constructor-arg name="email" value="123456789@qq.com"></constructor-arg>
</bean>
</beans>
测试文件
package Test;
import static org.junit.Assert.*;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class IOC {
private ApplicationContext ioc=new ClassPathXmlApplicationContext("IOC.xml");
@Test
public void test03(){
Person bean = ioc.getBean("person03",Person.class);
System.out.println(bean);
}
}
二、注意事项
1.在xml文件中配置的时候可以省略name属性,但是要严格按照构造方法中的参数顺序来进行赋值
2.如果顺序被打乱了,还可以用index属性赋值指定其顺序,按照0.1.2.3....的顺序进行赋值
3.如果构造方法有重载的现象,可以用type属性来指定该参数的类型
例如: <constructor-arg value="小明" index="0" type="java.lang.String"></constructor-arg>
主要还是用一般方式,指定name和value
三:通过P名称空间来为属性赋值
名称空间:在xml文件中名称空间是用来方式标签重复的
先把P名称空间导入
然后在容器中配置对象用p标签即可
<bean class="Test.Person" id="person04" p:age="12" p:email="123456@qq.com" p:grade="4" p:name="哈哈">
</bean>