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

可以看到代码给出警告提示
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关键字即可

可以看到警告被完美解决









![[SOC] MBIST (Memory Built-In Self Test) and Memory Built-in Self Repair (BISR)](https://img-blog.csdnimg.cn/8b427e9c7f6e4e61996d604742678b6b.png)









