Sping入门-IOC(控制翻转)/DI(依赖输入)--引用类型ref_bean

示例:

先键两个实体类("student.java","course.java")如下:

student.java

 1 package laogao.com;
 2 
 3 public class Student {
 4     private String name;
 5     private String age;
 6     private course course;
 7     
 8     
 9     public String getName() {
10         return name;
11     }
12     public void setName(String name) {
13         this.name = name;
14     }
15     public String getAge() {
16         return age;
17     }
18     public void setAge(String age) {
19         this.age = age;
20     }
21     public course getCourse() {
22         return course;
23     }
24     public void setCourse(course course) {
25         this.course = course;
26     }
27     public Student() {
28         
29     }
30     public Student(String name, String age, laogao.com.course course) {
31         this.name = name;
32         this.age = age;
33         this.course = course;
34     }
35     @Override
36     public String toString() {
37         return "Student [name=" + name + ", age=" + age + ", course=" + course + "]";
38     }
39     
40     
41     
42     
43 
44 }

course.java

package laogao.com;

public class course  {
    private String name;
    private String score;
    
    
    
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getScore() {
        return score;
    }
    public void setScore(String score) {
        this.score = score;
    }
    
    @Override
    public String toString() {
        return "course [name=" + name + ", score=" + score + "]";
    }
    
    
    

}

创建XML

ApplicationContext.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
 3 <beans>
 4     <bean id="course" class="laogao.com.course">
 5         <property name="name">
 6             <value>语文</value>
 7         </property>
 8         <property name="score">
 9             <value>80</value>
10         </property>
11     </bean>
12     <bean id="s1" class="laogao.com.Student">
13         <property name="name">
14             <value>laogao</value>
15         </property>
16         <property name="age">
17             <value>20</value>
18         </property>
19         <property name="course">
20             <ref bean="course"/>
21         </property>
22     </bean>
23 </beans>

ApplicationContext.xml(使用autowire="")

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
    <bean id="course" class="laogao.com.course">
        <property name="name">
            <value>语文</value>
        </property>
        <property name="score">
            <value>80</value>
        </property>
    </bean>
    <bean id="s1" class="laogao.com.Student" autowire="byType"> <!-- 自动补全非基础类型(byName通过名称)(byType通过类型) -->
        <property name="name">
            <value>laogao</value>
        </property>
        <property name="age">
            <value>20</value>
        </property>
        
    </bean>
</beans>

创建测试类

 1 package laogao.com;
 2 
 3 import org.springframework.context.ApplicationContext;
 4 import org.springframework.context.support.ClassPathXmlApplicationContext;
 5 
 6 public class Test {
 7     public static void main(String[] args) {
 8         ApplicationContext context=new ClassPathXmlApplicationContext("/ApplicationContext2.xml");
 9         Student student=(Student)context.getBean("s1");
10         System.out.println(student.toString());
11     }
12 
13 }

posted @ 2021-06-08 09:40  这里那里  阅读(58)  评论(0)    收藏  举报
Live2D