实现Bean自动装配。byname、bytype、Constructor
创建两个类
package com.enti;
public class Address {
private String address;
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
package com.enti;
import com.enti.Address;
public class Student {
private String name;
private Address address;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
}
配置xml文件
byname
<?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">
<!-- 装配address -->
<bean id="address" class="com.enti.Address">
<property name="address" value="china"/>
</bean>
<!--根据名字自动装配-->
<bean id="student" class="com.enti.Student" autowire="byName">
<property name="name" value="byName"/>
</bean>
</beans>
bytype
<?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="student" class="com.enti.Student" autowire="byType">
<property name="name" value="byType"/>
</bean>
</beans>
constructor
<?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="student" class="com.enti.Student" autowire="constructor">
<property name="name" value="constructor"/>
</bean>
</beans>
测试
byname
package test;
import com.enti.Student;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class test_01 {
@Test
public void test1() {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-AutoWiring-byname.xml");
Student student = (Student) applicationContext.getBean("student");
System.out.println(student.getName());
}
}
运行结果
bytype
package test;
import com.enti.Student;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class test_02 {
@Test
public void test2() {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-AutoWiring-byType.xml");
Student student = (Student) applicationContext.getBean("student");
System.out.println(student.getName());
}
}
运行结果
constructor
package test;
import com.enti.Student;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class test_03 {
@Test
public void test3() {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-AutoWiring-constructor.xml");
Student student = (Student) applicationContext.getBean("student");
System.out.println(student.getName());
}
}
运行结果