1. 程式人生 > >spring boot 如何將沒有註解的類@Autowired

spring boot 如何將沒有註解的類@Autowired

我們 boot con article 不能 https tail glib 一個

等於將類交給spring管理,也就是IOC。

註解@Autowired是自動裝配,也就是spring幫你創建對象,當然前提是這個@Autowired的類已經配置成Bean了,spring配置bean文件我們常用的方法是編寫配置文件。而spring boot則不需要這麽麻煩,它提供了兩個註解可以實現這個功能。

1.@Configuration

2.@Component

雖然@Configuration註解本質上還是 @Component,但是,兩者是有區別的。這裏簡單的提一下,需要深入了解的可以百度一下這兩個註解。

1.@Configuration一般是和@Bean一起使用,在@Configuration註解的類下的方法配置@Bean,則表明該方法IOC;而@Component註解的類中是不能定義類內依賴的@Bean註解的方法(你也可以在@Component的類中使用@Bean,後面這句話是spring的文檔說明中翻譯過來的,對於這裏還是有點混亂,看完下面會清晰)。


2.@Configuration是通過cglib代理來調用的,而@Component並沒有通過cglib代理來調用。

例如:A類中有方法1和方法2,方法2調用了方法1。(方法1返回的是一個對象)

(1)使用@Configuration來註解類,並用@Bean來註解兩個方法,這時候調用的是同一個方法1返回的對象。(也就是說方法1依賴註入好了已經交給spring管理起來的,當方法二再調用到方法1的時候,直接從spring中提取出剛註入好的方法1的對象)

(2)使用@Component來註解類,並用@Bean來註解兩個方法,這時候調用的是兩個不同的方法1返回的對象。(這裏應該可以說@Bean並沒有起到註入的作用。當然如果想要在@Component中調用的是同一個方法1的話,只需要在該類中@Autowired一個方法1放回的對象)
---------------------

原文:https://blog.csdn.net/thesmalltears/article/details/79207232

spring boot 如何將沒有註解的類@Autowired