对于注入,通常通过 @Autowired 关键字。
@Service
public class CartServiceImpl implements ICartService {
@Autowired
private RestTemplate restTemplate;
但是,这个方式 Spring Boot 并不推荐。
编辑器会提示一个波浪线;能看到提示就是构造函数的方式实现。
通过构造函数,进行依赖注入:
@RestController
public class PayController {
private IPayOrderService payOrderService;
public PayController(IPayOrderService payOrderService) {
}
/*
需要的构造函数多了;就会很长的「代码」负担
*/
当然这个问题通过一个注解, @AllArgsConstructor 解决。
这样会将所有的 「属性」 都定义 「构造函数」;太浪费了。
通过 /* final */ 关键字和 配合,完成仅对定义了 final 关键字的属性生成构造函数。
代码如下:
@RestController
@RequiredArgsConstructor
public class PayController {
private final IPayOrderService payOrderService;
最开始的代码就变成了
@Service
@RequiredArgsConstructor
public class CartServiceImpl implements ICartService {
private final RestTemplate restTemplate;