1舰蟆、@Component注解表明一個類會作為組件類,并告知Spring要為這個類創(chuàng)建bean咪笑。
2零渐、@Bean注解告訴Spring這個方法將會返回一個對象,這個對象要注冊為Spring應(yīng)用上下文中的bean嘲驾。通常方法體中包含了最終產(chǎn)生bean實例的邏輯淌哟。
兩者的目的是一樣的,都是注冊bean到Spring容器中辽故。
區(qū)別:
@Component(@Controller徒仓、@Service、@Repository)通常是通過類路徑掃描來自動偵測以及自動裝配到Spring容器中誊垢。
而@Bean注解通常是我們在標(biāo)有該注解的方法中定義產(chǎn)生這個bean的邏輯掉弛。
@Component 作用于類,@Bean作用于方法彤枢。
總結(jié):
@Component和@Bean都是用來注冊Bean并裝配到Spring容器中狰晚,但是Bean比Component的自定義性更強〗煞龋可以實現(xiàn)一些Component實現(xiàn)不了的自定義加載類壁晒。
來源:知乎