题解代码:
1.StudentImpl
package step4;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component("studentImpl")
public class StudentImpl implements Student {
@Value("小明")
private String name;
@Value("20")
private int age;
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
}
}
2.Teacher.java
package step4;
import javax.annotation.Resource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component("teacher")
public class Teacher {
@Value("张老师")
private String name;
@Autowired
private Student student;
@Override
public String toString() {
return "Teacher [name=" + name + ", student=" + student + "]";
}
}
3.applicationContext4.java
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 配置包扫描器开始 -->
<context:component-scan base-package="step4"></context:component-scan>
<!-- 配置包扫描器结束 -->
</beans>
4.Test.java
package step4;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test {
public static void main(String[] args) {
//使用ApplicationContext容器获取对象
ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext4.xml");
Teacher t = app.getBean("teacher",Teacher.class);
//打印对象
System.out.println(t.toString());
}
}