SpringIOC

IoC(Inverse of Control:控制反转)是一种设计思想,而不是一个具体的技术实现。

Spring通过一个配置文件描述BeanBean之间的依赖关系,利用Java语言的反射功能实例化Bean并建立Bean之间的依赖关系。 SpringIoC容器在完成这些底层工作的基础上,还提供了Bean实例缓存、生命周期管理、Bean实例代理、事件发布、资源装载等高级服务。

SpringIOC有三种注入方式 :构造器注入、setter方法注入、根据注解注入。 IoC让相互协作的组件保持松散的耦合,而AOP编程允许你把遍布于应用各层的功能分离出来 形成可重用的功能组件。

IOC容器实现

IoC的实现原理就是工厂模式加反射机制。

interface A {
    void a();
}

class B implements A {
    @Override
    public void a() {
        System.out.println("B.a()");
    }
}

class C implements A {
    @Override
    public void a() {
        System.out.println("C.a()");
    }
}

class Factory {
    public static A getInstance(String className) {
        A a=null;
        try {
            a=(A)Class.forName(className).newInstance();
        }catch (Exception e){
            e.printStackTrace();
        }
        return a;
    }

    public static void main(String[] args) {
        // com.B 是B类的包路径
        Factory.getInstance("com.B").a();
        Factory.getInstance("com.C").a();
    }
}

results matching ""

    No results matching ""