autowired和new区别
时间: 2023-08-09 11:08:11 浏览: 173
使用Spring2.5的Autowired实现注释型的IOC
@Autowired和new的区别主要有两个方面。
首先,在本质上,@Autowired是依赖注入的一种方式,它是通过从Spring容器中获取实例并进行注入来实现的。而new()是直接创建一个新的对象。这意味着@Autowired注入的对象是全局实例,可以在整个生命周期中使用,而通过new创建的对象只能在当前类中使用。\[1\]
其次,在使用上的区别,使用@Autowired注解的对象可以调用Spring容器内的实例,因为它是从IOC容器中获取已经初始化的对象,并且@Autowired的属性也已经通过容器完成了注入。而通过new创建的对象无法调用@Autowired注入的Spring Bean,否则会报空指针异常。此外,使用@Autowired注入的对象必须是Spring Bean才能调用它,不能使用new来获取对象,因为通过new方式获取的对象无法调用@Autowired注入的Bean。\[2\]\[3\]
综上所述,@Autowired和new的区别在于@Autowired是依赖注入的一种方式,可以从Spring容器中获取实例并进行注入,而new是直接创建一个新的对象,无法调用@Autowired注入的Spring Bean。同时,使用@Autowired注入的对象必须是Spring Bean才能调用它,不能使用new来获取对象。
#### 引用[.reference_title]
- *1* *2* [springboot 中@Autowired和 new()对象的区别](https://blog.csdn.net/jimzhking/article/details/118085326)[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^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [@Autowired与new对象的区别](https://blog.csdn.net/weixin_43833011/article/details/88662380)[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^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文