@Autowired不推荐
时间: 2023-10-07 07:09:19 浏览: 57
@Autowired注解在Spring开发中是一个常用的依赖注入方式。然而,你可能会惊奇地发现,Spring和IDEA都不推荐使用@Autowired注解。根据官方答案和一些开发者的总结,这是因为@Autowired注解存在一些缺点。它会导致代码中出现警告,并且不够明确,不方便维护和测试。因此,Spring和IDEA建议使用构造函数注入来提供明确的依赖关系,并避免使用自动注入。此外,除了@Autowired注解,还有其他的依赖注入方式可供选择,如@Resource、@Inject、构造函数注入、Java配置类等。每种方式都有其优缺点和适用场景,我们应根据具体情况选择最合适的方式。
相关问题
使用@Autowired 和不使用 @Autowired 代码上面的区别
在Java中,@Autowired是Spring框架中的一个注解,它可以自动装配一个Bean,而不需要手动编写代码来实现依赖注入。使用@Autowired注解可以使代码更加简洁,减少了手动编写依赖注入的代码量,提高了开发效率。
如果不使用@Autowired注解,我们需要手动编写依赖注入的代码,例如使用构造函数、setter方法或者工厂方法等方式来实现依赖注入。这样会增加代码量,降低开发效率。
下面是使用@Autowired注解和不使用@Autowired注解的示例代码:
使用@Autowired注解:
```
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
//...
}
```
不使用@Autowired注解:
```
@Service
public class UserServiceImpl implements UserService {
private UserDao userDao;
public UserServiceImpl(UserDao userDao) {
this.userDao = userDao;
}
//...
}
```
可以看到,使用@Autowired注解可以省略掉手动编写构造函数或者setter方法的步骤,使代码更加简洁。
@Autowired推荐使用吗
根据引用\[1\]和引用\[2\]的内容,可以得出结论,当使用@Autowired注入时,推荐使用Setter Injection的方式。Setter Injection具有更好的可测试性,并且在使用@Autowired时,IDEA不会给出警告。这也反映了可测试性在开发中的重要性。所以可以说,推荐使用@Autowired的Setter Injection方式。
#### 引用[.reference_title]
- *1* *3* [为什么使用@Resource而不用@Autowired(@autowired爆黄)](https://blog.csdn.net/munangs/article/details/127908045)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [Spring为啥不推荐使用@Autowired注解?](https://blog.csdn.net/qq_39221436/article/details/121028067)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)