通常企业级的应用程序都不会由一个单一的对象(在Spring中叫做Bean)组成。即使是最简单应用程序,也会有多个对象在一起协同工作。接下来解释如果把一些单独Bean定义组合成一个对象间相互协作的真实的应用程序。

依赖注入(DI)是一个对象定义它们的依赖的过程,也就是说,通过构造器参数、工厂方法的参数、或者对象实例上的set属性方法等来设置与其一起工作的其他对象。然后Spring容器在创建相关的Bean时注入这些依赖。这个过程是完全反转的,因此控制反转(Inversion of Control(IoC))的名称意味着相关Bean自己要直接使用类的构造器或服务定位模式来控制其所依赖资源的实例化或定位。

使用DI原则上会让代码更加清洁,并且在用依赖的方式提供对象时,会让解耦更加高效。对象不会寻找它们的依赖,并且也不知道相关的依赖的位置或类,因此类就变得比较容易测试,尤其是依赖是接口或抽象类的时候,就可以在单元测试中使用存根或模拟实现来代替。有两种主要的依赖方式:基于构造器的依赖注入基于Setter的依赖注入

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐