国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

關于Springboot如何獲取IOC容器

瀏覽:40日期:2023-12-01 18:32:43
目錄Springboot項目中獲取IOC容器的方式方法一(不實用,不推薦):方法二(強烈推薦):總結Springboot項目中獲取IOC容器的方式

在Springboot項目中如果要獲取IOC容器目前有兩種方法。

方法一(不實用,不推薦):

在Springboot項目中都會存在一個SpringApplication的啟動類,我們通過以下代碼啟動IOC容器。

SpringApplication.run(Application.class, args);

其實run方法會將創建的IOC容器作為返回值返回,那么我們就可以通過聲明一個ApplicationContext對象來接收run方法的返回值。

public class SpringApplication { public static void main(String[] args) {ApplicationContext applicationContext = SpringApplication.run(Application.class, args);Object startSerive = applicationContext.getBean('startSerive'); }}

但是,使用這種方法會遇到各種各樣的問題,所以我們通常使用第二種方法。

方法二(強烈推薦):

通過編寫實現了ApplicationContextAware的工具類來獲取IOC容器,當實現了ApplicationContextAware的類在容器中被初始化和加載后,會自動調用ApplicationContextAware中的setApplicationContext方法,將IOC容器傳入setApplicationContext方法的形參中。

以下是用于獲取IOC容器的工具類:

public class SpringContextUtil implements ApplicationContextAware { private static ApplicationContext applicationContext; public SpringContextUtil() { } /** * 設置上下文 * @param applicationContext * @throws BeansException */ @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {if (SpringContextUtil.applicationContext == null) { SpringContextUtil.applicationContext = applicationContext;} } /** * 獲取上下文 * @return */ public static ApplicationContext getApplicationContext() {return applicationContext; } /** * 通過名字獲取上下文中的bean * @param name * @return */ public static Object getBean(String name){return applicationContext.getBean(name); } /** * 通過類型獲取上下文中的bean * @param requiredType * @return */ public static Object getBean(Class<?> requiredType){return applicationContext.getBean(requiredType); }}

上面這個工具類只有在被IOC容器加載完之后才會調用setApplicationContext,那么該怎么把工具類放到IOC容器中呢?我們使用@Import注解來實現,具體使用方法請看下面代碼:

@SpringBootApplication@Import({SpringContextUtil.class})public class Application { public static void main(String[] args) {SpringApplication.run(Application.class, args); }}

注:不使用@Import也是可以的,例如在SpringContextUtil類上面標注@Component等類似的注解也是可以的。

@Import注解須知:

1.@Import只能用在類上 ,@Import通過快速導入的方式實現把實例加入spring的IOC容器中

2.加入IOC容器的方式有很多種,@Import注解可以用于導入第三方包 ,當然@Bean注解也可以,但是@Import注解快速導入的方式更加便捷

總結

本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關注好吧啦網的更多內容!

標簽: Spring
相關文章:
主站蜘蛛池模板: 鸥美毛片 | 国产成人99精品免费观看 | 女人张开腿 让男人桶视频 女人张开腿等男人桶免费视频 | 成年人一级片 | 亚洲国产日韩a在线亚洲 | 午夜91理论片 | 99精品在线 | 久久99久久精品久久久久久 | 国产欧美日韩在线不卡第一页 | 久久93精品国产91久久综合 | 久草网视频 | 91精品日本久久久久久牛牛 | 国产精品手机在线播放 | 亚洲狠狠狠一区二区三区 | 精品久久久久久 | 欧美日韩一区二区视频免费看 | 久久视频国产 | 国产成人综合洲欧美在线 | 欧美成人久久久 | 香港a毛片免费全部播放 | 欧洲一级大片 | 免费一级毛片在线观看 | 一级毛片私人影院免费 | 亚洲精品高清国产一久久 | 久久伊人操 | 蜜桃日本一道无卡不码高清 | 成人亚洲精品 | 91精品国产欧美一区二区 | 久久中文字幕久久久久91 | 日韩中文精品亚洲第三区 | 国产精品视频免费一区二区三区 | 女女互操 | 男人的天堂中文字幕 | 久久毛片久久毛 | 日本妞xxxxxxxxx69 | 免费一级欧美大片久久网 | 国产日韩三级 | 亚洲免费视频播放 | 欧美一区精品二区三区 | 国产男女乱淫真视频全程播放 | 欧美高清在线视频一区二区 |