Spring注解中@Autowired和@Bean的區(qū)別詳解
先了解下這兩個注解各自的使用場景,咱就知道兩者的區(qū)別了。
1,@Autowired
@Autowired 注釋,它可以對類成員變量、方法及構(gòu)造函數(shù)進行標注,完成自動裝配的工作。 通過 @Autowired的使用來消除 set ,get方法。在此之前,我們對bean配置屬性時,是這么用的
<property name="屬性名" value=" 屬性值"/>
通過這種方式來,配置比較繁瑣,而且代碼比較多。在Spring 2.5 引入了 @Autowired 注釋
使用@Autowired的原理:
其實在啟動spring IOC時,容器自動裝載了一個AutowiredAnnotationBeanPostProcessor后置處理器,當容器掃描到@Autowied、@Resource(是CommonAnnotationBeanPostProcessor后置處理器處理的)或@Inject時,就會在IoC容器自動查找需要的bean,并裝配給該對象的屬性
2,@Bean
@Bean是一個方法級別上的注解,主要用在@Configuration注解的類里,也可以用在@Component注解(@Controller,@Service,@Repository)的類里。添加的bean的id為方法名@Bean注解是Spring從3.0版本開始引入的
spring的@Bean注解用于告訴方法,產(chǎn)生一個Bean對象,然后這個Bean對象交給Spring管理。產(chǎn)生這個Bean對象的方法Spring只會調(diào)用一次,隨后這個Spring將會將這個Bean對象放在自己的IOC容器中。
實例:
@Configuration
public class AppConfig {
@Bean
public UserService userService() {
return new UserServiceImpl();
}
}等同于以下XML配置:
<beans>
<bean id="userService" class="com.acme.UserServiceImpl"/>
</beans>兩者區(qū)別:
@Autowired 可修飾變量和方法,用于完成自動裝配(將需要的外部資源注入),自動裝配的前提你要先有才能裝配(該資源需要存在于IOC容器中),直接引用資源就行。
@Bean 修飾的方法表示初始化一個對象并交由Spring IOC去管理,@Bean 只能和@Component @Repository @Controller @Service @Configration 配合使用。
到此這篇關(guān)于Spring注解中@Autowired和@Bean的區(qū)別詳解的文章就介紹到這了,更多相關(guān)@Autowired和@Bean的區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot項目打包成war包并部署在tomcat上運行的操作步驟
我們開發(fā) SpringBoot 項目有時我們會需要打包成 war 包,放入外置的 Tomcat 中進行運行,或者使用工具idea直接啟動,便于開發(fā)調(diào)試,本文給大家分享SpringBoot項目打包成war包并部署在tomcat上運行的操作步驟,感興趣的朋友一起看看吧2024-03-03
spring boot配置ssl實現(xiàn)HTTPS的方法
這篇文章主要介紹了spring boot配置ssl實現(xiàn)HTTPS的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-03-03
JDK動態(tài)代理提高代碼可維護性和復(fù)用性利器
這篇文章主要為大家介紹了JDK動態(tài)代理提高代碼可維護性和復(fù)用性利器,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-10-10
基于Java中對域和靜態(tài)方法的訪問不具有多態(tài)性(實例講解)
下面小編就為大家?guī)硪黄贘ava中對域和靜態(tài)方法的訪問不具有多態(tài)性(實例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10
Java面試題沖刺第三十天--數(shù)據(jù)庫(6)
這篇文章主要為大家分享了最有價值的三道關(guān)于數(shù)據(jù)庫的面試題,涵蓋內(nèi)容全面,包括數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的題目、經(jīng)典面試編程題等,感興趣的小伙伴們可以參考一下2021-09-09

