【ZeyFraのWeb开发经验09】关于Field injection is not recommended的警告提示
【问题描述】
Field injection is not recommended
不再推荐使用字段注入
【解决办法】
该警告是在spring framework4.0的时候出现的,spring 4.0开始就不推荐使用属性注入,改为构造器注入和setter注入。
(这都不知道的话= =那我来解释一下)
//基于构造器注入
//基于构造函数注入的主要优点是可以将需要注入的字段声明为final
//使得它们会在类实例化期间被初始化,这对于所需的依赖项很方便
@Component
public class Demo{
private final User user;
@Autowired
public Demo(User user) {
this.user = user;
}
}
//--------------------------------------------------------------
//基于Setter注入
//一旦使用无参数构造函数或无参数静态工厂方法实例化Bean
//为了注入Bean的依赖项,Spring容器将调用这些setter方法。
@Component
public class Demo{
private User user;
@Autowired
public setUser(User user) {
this.user = user;
}
}
//其实@Autowired在构造器注入时和Setter是可以省略的,这一点可以参考官方文档