在使用@Autowired注解进行注入时,IDEA经常会警告Field injection is not recommended。点击查看警告详细:Spring Team recommends : “Always use constuctor based dependency injection in your beans ,Always use assertions for mandatory dependencies”.这句话的意思是Spring团队建议:“总是在您的bean中使用构造函数建立依赖注入。始终对强制依赖项使用断言”。
解决方法一
可以采用构造器注入方式来解决:
private final UserService userService;
@Autowired
public UserController(UserService userService) {
this.userService = userService;
}
解决方法二
也可以将@Autowired注解替换为@Resource注解
@Autowired总结:
可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。
可以采取对应的field注入,set方法注入,构造器注入。
field注入方式:
@Autowired
private UserService userService;
set方法注入方式:
private UserService userService;
@Autowired
public void setUserService(UserService userService){
this.userService = userService;
}
构造器注入方式:
private final UserService userService;
@Autowired
public UserController(UserService userService) {
this.userService = userService;
}
网友评论