问题:
在使用变量方式依赖注入时,提示Field injection is not recommended
@Autowired
LogService logService;
虽然变量方式注入非常简洁,但是他不能明确的指明依赖,所以有时候我们使用这种方式会遇到依赖注入为null的情况。这种方式过于依赖容器,当没有启动整个依赖容器时,这个类就不能被加载。
因此:
编译器给我们建议是使用构造器注入,因为使用构造器方式时已经显式注明必须强制注入。通过强制指明依赖注入来保证这个类的运行。
总结:
变量方式注入应该尽量避免,使用set方式注入或者构造器注入,这两种方式的选择就要看这个类是强制依赖的话就用构造器方式,选择依赖的话就用set方法注入。