日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring框架—IoC容器

發布時間:2024/4/15 javascript 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring框架—IoC容器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先我們需要了解一下是什么是IoC。IoC是Spring的核心技術之一,全稱是Inversion of Control(控制反轉)。最原始的創建對象的方法就是通過new來實現(手動的編寫代碼實現),而Spring提供了Ioc容器用于對象的創建以及配置、管理、銷毀等。

容器啟動的時候,讀取配置文件,基于配置文件的信息初始化(創建)對象。容器一啟動就創建對象的好處是:使用的時候就不用創建了,直接從容器中獲取比使用時創建性能好。弊端是:不使用對象但是創建了對象,占用內存

new?Hollow();

當應用了IoC,一個對象依賴的其它對象會通過被動的方式傳遞進來,而不是這個對象自己創建或者查找依賴對象,這樣做降低了類之間的耦合程度。不是對象從容器中查找依賴,而是容器在對象初始化時不等對象請求就主動將依賴傳遞給它。

一、容器?

從程序的角度,容器實際上就是某些特定接口的實現類的實例。spring容器可歸為兩類:

  • BeanFactory容器:bean工廠(org.springframework.beans.factory.BeanFactory), 提供簡單DI支持
  • ApplicationContext容器:應用上下文(org.springframework.context.ApplicationContext),基于BeanFactory構建,并提供框架服務,如配置解析,主流使用的是功能更加強大的應用上下文(ApplicationContext)

二、Spring BeanFactory 容器

BeanFacotry是spring中比較原始的Factory。如XMLBeanFactory就是一種典型的BeanFactory。原始的BeanFactory無法支持spring的許多插件,如AOP功能、Web應用等。?ApplicationContext接口,它由BeanFactory接口派生而來,ApplicationContext包含BeanFactory的所有功能,通常建議比BeanFactory優先。

代碼:

public interface BeanFactory {String FACTORY_BEAN_PREFIX = "&";Object getBean(String var1) throws BeansException;<T> T getBean(String var1, Class<T> var2) throws BeansException;Object getBean(String var1, Object... var2) throws BeansException;<T> T getBean(Class<T> var1) throws BeansException;<T> T getBean(Class<T> var1, Object... var2) throws BeansException;<T> ObjectProvider<T> getBeanProvider(Class<T> var1);<T> ObjectProvider<T> getBeanProvider(ResolvableType var1);boolean containsBean(String var1);boolean isSingleton(String var1) throws NoSuchBeanDefinitionException;boolean isPrototype(String var1) throws NoSuchBeanDefinitionException;boolean isTypeMatch(String var1, ResolvableType var2) throws NoSuchBeanDefinitionException;boolean isTypeMatch(String var1, Class<?> var2) throws NoSuchBeanDefinitionException;@NullableClass<?> getType(String var1) throws NoSuchBeanDefinitionException;String[] getAliases(String var1); }
  • getBean方法:從容器中獲取Bean對象
  • is方法:bean類型的判斷
  • get方法:獲取Bean類型和別名

三、ApplicationContext 的主要實現類

  • ClassPathXmlApplicationContext:從 類路徑下加載配置文件
  • FileSystemXmlApplicationContext: 從文件系統中加載配置文件
  • ConfigurableApplicationContext:?擴展于?ApplicationContext,新增加兩個主要方法:refresh() 和 close(), 讓?ApplicationContext 具有啟動、刷新和關閉上下文的能力
  • ApplicationContext?:在初始化上下文時就實例化所有單例的 Bean。
  • WebApplicationContext: 是專門為 WEB 應用而準備的,它允許從相對于 WEB 根目錄的路徑中完成初始化工作

直白一點,就是五種常見加載方式? Application context = new 某種Context(參數傳資源位置: 如"a.b.c.class" / "F:/config.xml" / "config.xml"? 等等)

總結

以上是生活随笔為你收集整理的Spring框架—IoC容器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。