spring框架的依赖注入简单示例理解

spring框架的依赖注入简单示例理解

spring的本质目的:简化java开发。
如何简化开发?–降低耦合。
如何降低耦合?–面向接口编程

package spring.ioc;

import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;


public class ExplainDI {

    interface People{
       void say();
    }
    interface Body{
        void say();
    }
    class Mouth{
        void mouthSay(){
            System.out.println("say on mouth...");
        };
    }

    /**
     *传统的实现:紧紧的耦合
     */
    class BBPeople implements People{
        //人需要mouth说话
        private Mouth mouth;

        //如果需要嘴巴来讲话 需要自行创建一个
        //如果有个需求是用手语讲话,那么就需要重写mouth代码,还需要新改bbpeople中的代码
        public BBPeople() {
            this.mouth = new Mouth();
        }

        @Override
        public void say() {
            mouth.mouthSay();
        }
    }

    class BPeople implements People{
        //人需要身体中某个部位讲话
        private Body body;

        //body

        //面向接口编程:把讲话的方式往上层抽象,此时可以不用改代码
        public BPeople(Body body) {
            this.body = body;
        }

        @Override
        public void say() {
            body.say();
        }
    }

    @Test
    public void test() {
        //面向接口编程,此时BPeople非常容易传入body实例进行测试
        //1.你可以手动创建
        Body hand = new Body() {
            @Override
            public void say() {
                System.out.println("使用手语讲话....");
            }
        };
        //2.或者你配置好相关的body的实现,使用一种框架读取然后动态的把body对象传过来
        //那么这里可以考虑使用一个统一标记,把对象注入到此,这就是spring的依赖注入,把需要的依赖body通过spring0容器基于事先的配置xml动态创建注入。
//        @Autowired
//        Body hand2;
        
        BPeople bPeople = new BPeople(hand);
        bPeople.say();
    }



}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值