Spring学习笔记-自动装配与依赖检查

1.Spring自动装配

Spring自动装配有2种方式,分别是根据名字(id)和类型,推荐使用名字。

1.1 Spring根据Bean id自动装配

applicationContext.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"
    xmlns:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

    <bean
        id="book"
        class="com.test.Book"></bean>
    <bean
        id="Internet"
        class="com.test.Internet"></bean>

    <bean
        id="student"
        class="com.test.Student">
        <property
            name="name"
            value="zhangsan">
        </property>
        <property name="tool">
            <ref local="book" />
        </property>
    </bean>

</beans>

Java代码:

Person接口

package com.test;

public interface Person
{
    public void work();
}

Student类

package com.test;

public class Student implements Person
{

    private Tool tool;

    private String name;

    public String getName()
    {
        return name;
    }

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

    public Tool getTool()
    {
        return tool;
    }

    public void setTool(Tool tool)
    {
        this.tool = tool;
    }

    @Override
    public void work()
    {
        getTool().doWork(getName());
    }

}

Tool接口

package com.test;

public interface Tool
{
    public void doWork(String name);
}

Internet类

package com.test;

public class Internet implements Tool
{

    @Override
    public void doWork(String name)
    {
        System.out.println("你好:" + name + ", 欢迎使用Internet。通过Internet你可以查阅你所研究领域的最新进展。");
    }

}


Book类
package com.test;

public class Book implements Tool
{

    @Override
    public void doWork(String name)
    {
        System.out.println("你好:" + name + ", 欢迎使用书籍。书籍是人类进步的阶梯。");
    }

}

运行客户端Client

package com.test;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;

public class Client
{
    public static void main(String[] args)
    {
        ClassPathResource classPathResource = new ClassPathResource(
                "applicationContext.xml");

        BeanFactory factory = new XmlBeanFactory(classPathResource);

        Person student = (Person) factory.getBean("student");
        
        student.work();
    }

}

运行结果:

你好:zhangsan, 欢迎使用书籍。书籍是人类进步的阶梯。


根据id自动装配,主要是ref这个属性的配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值