java的Spring学习2--构造函数注入

bean文件如下:

<?xml version="1.0" encoding="UTF-8"?>
 <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns="http://www.springframework.org/schema/beans"
             xsi:schemaLocation="http://www.springframework.org/schema/beans
             http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

     <bean id="teacher" class="com.ppmoney.test.Teacher">
        <property name="name" value="Yang"/>
    </bean>
    <bean id="score" class="com.ppmoney.test.Score">
        <constructor-arg name="name" value="数学课"/>
        <constructor-arg name="id" value="1"/>
    </bean>
    <bean id="teacher2" class="com.ppmoney.test.Teacher">
        <constructor-arg name="name" value="Zhang"/>
        <constructor-arg name="score" ref="score"/>
    </bean>

 </beans>

2.类文件如下

class Teacher extends  Observable
{
    public Teacher()
    {

    }
    public Teacher(Score score,String name)
    {
        this.score=score;
        this.name=name;
    }
    private String name;
    private Score score;
    public void startLesson()
    {
        System.out.println(String.format("%s老师%s 开始上课",getScore(),name));
        super.setChanged();
        super.notifyObservers();
    }

    public String getName() {
        return name;
    }
    public Score getScore() {
        return score;
    }
    public void setName(String name) {
        this.name = name;
    }
}

class Score
{
    private String name;
    private int id;

    Score(String name, int id) {
        this.name = name;
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    @Override
    public String toString()
    {
        return name;
    }
}

3.调用代码如下

ApplicationContext ctx = new ClassPathXmlApplicationContext("bean1.xml");//读取bean.xml中的内容

        Teacher sir=ctx.getBean("teacher2",Teacher.class);
        if(sir==null)
        {
            System.out.println( "Teacher Init Failed..." );
        }
        else {
            System.out.println( "Teacher Init Succ..." );
}            
原文地址:https://www.cnblogs.com/zhshlimi/p/6592952.html