Spring 初体会

Posted on 2018-02-01 19:58  GaryWant  阅读(97)  评论(0)    收藏  举报

Spring,首先得明白为什么提出spring。spring的思想来源是DI,可以解释为dependency injection(依赖注入)或者dependency inverse(依赖反转)的松耦合想法,核心目标是重现POJO,去除一些繁杂的重复的代码模块。

那么,Spring 是什么?我的理解就是一个容器,一个BeanFactory。Spring管理所有Bean,一开始的spring通过xml(我认为这个xml不如说是约定较好)来配置实例化所有Bean对象,每次应用需要取Bean时都通过Spring容器(context)的getBean方法得到Bean对象。

对于DI的个人理解:所谓DI,我不想具体阐述它的单词意义。DI做了生什么?DI做了解耦,实现了设计模式中的延迟实现的原则。一般DI的意义在于一个实例A调用基于某个父类B的实例C的继承方法。为了解耦,首先把实例C注入A中,这样A只需对C的方法进行封装为自己本地方法即可。但是,万一A不仅仅是需要调用C的方法呢?而是需要调用一系类基于B的所有子类的通用方法呢?那么就得将A中的私有类型改成私有接口,这样无论注入C1还是C2都拥有实例化了的通用方法。

当然,DI可以基于set方法注入,比如Bean标签中的property标签,就是调用class中的set方法,但是会造成一个问题:一旦没有set进去,调用方法的时候必然报空引用错。所以为了安全起见还是在构造函数中注入bean较为安全。

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3