自动装配(也就是依赖注入)是Spring一个十分重要的模块,Spring容器可以对Bean进行自动装配,自动装配真是个好技术,好处有:

优点

  • 自动装配可以大大地减少属性和构造器参数的指派。
  • 自动装配也可以在解析对象时更新配置。

任何事物有好就有坏,那自动装配有啥缺点呢?

缺点

  • propertyconstructor-arg设置中的依赖总是重载自动装配,我们无法对原始类型(如int,long,boolean等就是首字母小写的那些类型),还有String,Classes做自动装配。这是受限于设计。
  • 自动装配跟直接装配(explicit wiring)相比较,在准确性方便还是差那么点,虽然没有明确地说明,但是Spring还是尽量避免这种模棱两可的情况,导致出现没预料到的结果。
  • Spring容器生成文档的工具可能会不能使用装配的信息。
  • 容器中多个bean的定义可能要对setter和构造器参数做类型匹配才能做依赖注入,虽然对于array,collection和map来说不是啥问题,但是对于只有单一值的依赖来讲,这就有点讲不清楚了,所以如果没有唯一的bean定义,那只能抛出异常。

参考资料

https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐