解决@Autowired警告

一.前言

再使用springboot自动注入@Autowired注解时,下方会出现波浪线警告,这是什么原因呢?我们细看提示说明已经说的很清楚了,Field injection is not recommended “不建议使用字段注入”,字段注入是指通过直接将依赖项注入到类的字段中来实现依赖注入。这种方式存在一些问题,比如降低了代码的可测试性,增加了类之间的耦合度,使得依赖关系不够清晰等。相比之下,构造函数注入或者方法注入是更好的选择。构造函数注入是指通过类的构造函数来接收依赖项,而方法注入则是通过方法参数来传递依赖项。

二.解决方案

2.1 示例代码

@Service
public class CartServiceImpl extends ServiceImpl<CartMapper, Cart> implements ICartService {

    @Autowired
    private RestTemplate restTemplate;
}

解决@Autowired警告_第1张图片
可以看到代码给出警告提示

2.2 解决方案

在类上添加@RequiredArgsConstructor注解,@RequiredArgsConstructor 是 Lombok 提供的一种注解,它能够为被标记的类自动生成一个包含所有非静态字段的构造函数。该注解适用于不可变对象(Immutable Object)的构建,能够简化代码并提高开发效率。

代码改造:

@Service
@RequiredArgsConstructor
public class CartServiceImpl extends ServiceImpl<CartMapper, Cart> implements ICartService {

        private final RestTemplate restTemplate;
}

注意:被 @RequiredArgsConstructor 注解标记的字段必须使用 final 关键字进行声明,以确保生成的构造函数能够正确地初始化这些字段,如果自定义变量不想出现在构造方法中只要不加final关键字即可

解决@Autowired警告_第2张图片

可以看到警告被完美解决

你可能感兴趣的:(spring,spring,boot)