Spring @Bean注解配置及使用方法解析
使用說(shuō)明
這個(gè)注解主要用在方法上,聲明當(dāng)前方法體中包含了最終產(chǎn)生 bean 實(shí)例的邏輯,方法的返回值是一個(gè) Bean。這個(gè) bean 會(huì)被 Spring 加入到容器中進(jìn)行管理,默認(rèn)情況下 bean 的命名就是使用了 bean 注解的方法名。@Bean 一般和 @Component 或者 @Configuration 一起使用。
@Bean 顯式聲明了類(lèi)與 bean 之間的對(duì)應(yīng)關(guān)系,并且允許用戶(hù)按照實(shí)際需要?jiǎng)?chuàng)建和配置 bean 實(shí)例。
該注解相當(dāng)于:
<bean id="useService" class="com.test.service.UserServiceImpl"/>
普通組件
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class MyConfigration { @Bean public User user() { return new User; } }
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class UserController { @Autowired User user; @GetMapping("/test") public User test() { return user.test(); } }
命名組件
bean 的命名為:user,別名為:myUser,兩個(gè)均可使用
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class MyConfigration { @Bean(name = "myUser") public User user() { return new User; } }
bean 的命名為:user,別名為:myUser / yourUser,三個(gè)均可使用
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class MyConfigration { @Bean(name = {"myUser", "yourUser"}) public User user() { return new User; } }
Bean 初始化和銷(xiāo)毀
public class MyBean { public void init() { System.out.println("MyBean初始化..."); } public void destroy() { System.out.println("MyBean銷(xiāo)毀..."); } public String get() { return "MyBean使用..."; } }
@Bean(initMethod="init", destroyMethod="destroy") public MyBean myBean() { return new MyBean(); }
只能用 @Bean 不能使用 @Component
@Bean public OneService getService(status) { case (status) { when 1: return new serviceImpl1(); when 2: return new serviceImpl2(); when 3: return new serviceImpl3(); } }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Eclipse項(xiàng)目出現(xiàn)紅色嘆號(hào)的解決方法
eclipse工程前面出現(xiàn)紅色嘆號(hào)都是由于eclipse項(xiàng)目、eclipse工程中,缺少了一些jar包等文件引起的,這篇文章主要給大家介紹了關(guān)于Eclipse項(xiàng)目出現(xiàn)紅色嘆號(hào)的解決方法,需要的朋友可以參考下2023-11-11Java使用DateUtils對(duì)日期進(jìn)行數(shù)學(xué)運(yùn)算經(jīng)典應(yīng)用示例【附DateUtils相關(guān)包文件下載】
這篇文章主要介紹了Java使用DateUtils對(duì)日期進(jìn)行數(shù)學(xué)運(yùn)算的方法,可實(shí)現(xiàn)針對(duì)日期時(shí)間的各種常見(jiàn)運(yùn)算功能,并附帶DateUtils的相關(guān)包文件供讀者下載使用,需要的朋友可以參考下2017-11-11Springboot?+redis+谷歌開(kāi)源Kaptcha實(shí)現(xiàn)圖片驗(yàn)證碼功能
這篇文章主要介紹了Springboot?+redis+?歌開(kāi)源Kaptcha實(shí)現(xiàn)圖片驗(yàn)證碼功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-01-01SpringBoot項(xiàng)目執(zhí)行腳本 自動(dòng)拉取最新代碼并重啟的實(shí)例內(nèi)容
在本篇文章里小編給大家整理的是一篇關(guān)于SpringBoot項(xiàng)目執(zhí)行腳本 自動(dòng)拉取最新代碼并重啟的實(shí)例內(nèi)容,有需要的朋友們參考下。2019-12-12java使用靜態(tài)關(guān)鍵字實(shí)現(xiàn)單例模式
這篇文章主要為大家詳細(xì)介紹了java使用靜態(tài)關(guān)鍵字實(shí)現(xiàn)單例模式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04