第1关:Spring配置文件加载对象
package step1;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Task {
public void getCar(){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext1.xml");
Car c1 = (Car) applicationContext.getBean("car");
c1.run();
}
}
第2关:Bean 的属性注入
Student.java
package step2;
public class Student {
private String name;
private String sex;
private int age;
/****** Begin ******/
public void setName(String name){
this.name=name;
}
public void setSex(String sex){
this.sex=sex;
}
public void setAge(int age){
this.age=age;
}
/****** End ******/
@Override
public String toString() {
return "Student [name=" + name + ", sex=" + sex + ", age=" + age + "]";
}
}
Teacher.java
package step2;
public class Teacher {
private String name;
private String grade;//学生年级
private Student student;
/****** Begin ******/
public void setName(String name){
this.name=name;
}
public void setGrade(String grade){
this.grade=grade;
}
public void setStudent(Student student){
this.student=student;
}
/****** End ******/
@Override
public String toString() {
return "Teacher [name=" + name + ", grade=" + grade + ", student="
+ student + "]";
}
}
Test.java
package step2;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import step2.Teacher;
public class Test {
public static void main(String[] args) {
//使用ApplicationContext容器获取对象
ApplicationContext app=new ClassPathXmlApplicationContext("applicationContext2.xml");
Teacher teacher=(Teacher) app.getBean("teacher");
Student stu = (Student) app.getBean("stu");
//打印对象
System.out.print(teacher);
}
}
applicationContext2.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">
<!--开始配置bean -->
<bean id="teacher" class="step2.Teacher">
<property name="name" value="张老师"></property>
<property name="grade" value="C366"></property>
<property name="student" ref="stu"></property>
</bean>
<bean id="stu" class="step2.Student">
<property name="name" value="小吴"></property>
<property name="sex" value="男"></property>
<property name="age" value="18"></property>
</bean>
<!--结束配置 -->
</beans>
第3关:Bean 的构造函数注入
Student.java
package step3;
public class Student {
private String name;
private int age;
private double score;
/****** Begin ******/
public Student(String name,int age,double score){
super();
this.name=name;
this.age=age;
this.score=score;
}
/****** End ******/
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + ", score=" + score
+ "]";
}
}
Teacher.java
package step3;
public class Teacher {
private String name;
private String grade;//学生年级
private Student student;
/****** Begin ******/
public Teacher(String name,String grade,Student student){
super();
this.name=name;
this.grade=grade;
this.student=student;
}
/****** End ******/
@Override
public String toString() {
return "Teacher [name=" + name + ", grade=" + grade + ", student="
+ student + "]";
}
}
applicationContext3.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--开始配置bean -->
<bean id="teacher" class="step3.Teacher">
<constructor-arg value="张老师" index="0"></constructor-arg>
<constructor-arg value="C366" index="1"></constructor-arg>
<constructor-arg ref="stu" index="2"></constructor-arg>
</bean>
<bean id="stu" class="step3.Student">
<constructor-arg value="小花" index="0"></constructor-arg>
<constructor-arg type="int" value="18" index="1"></constructor-arg>
<constructor-arg type="double" value="89.0" index="2"></constructor-arg>
</bean>
<!--结束配置 -->
</beans>
Test.java
package step3;
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("applicationContext3.xml");
Teacher teacher=(Teacher) app.getBean("teacher");
Student stu = (Student) app.getBean("stu");
//打印对象
System.out.print(teacher);
}
}
第4关:Bean 的注解注入
StudentImpl.java
package step4;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component("student")
public class StudentImpl implements Student {
@Value("小明")
private String name;
@Value("20")
private int age;
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
}
}
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 + "]";
}
}
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>
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 applicationContext=new ClassPathXmlApplicationContext("applicationContext4.xml");
Teacher teacher=(Teacher) applicationContext.getBean("teacher");
Student stu=(Student) applicationContext.getBean("student");
//打印对象
System.out.println(teacher);
}
}