<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Java Spring IoC 容器示例 > 原文: [https://javatutorial.net/java-spring-ioc-container-example](https://javatutorial.net/java-spring-ioc-container-example) 簡而言之,IoC 容器負責實例化/創建和配置對象以及組裝對象之間的依賴關系。 ![java-featured-image](https://img.kancloud.cn/05/3e/053ee0bb59842d92359246c98f815e0c_780x330.jpg) 您可能想知道.. IoC 容器如何接收執行上述操作的數據? 答案來自 3 個地方中的 1 個:XML 文件,Java 代碼或 Java 注解。 IoC 容器是 Spring 中的一個框架,用于管理 POJO(普通的舊 Java 對象)的生命周期,并在需要時將其插入 Java 程序中。 通常,Java 對象通過兩種方式聲明其依賴項: 1. 通過將它們作為參數傳遞給構造函數 2. 通過將它們作為參數傳遞給對象的 setter 方法 Spring IoC 容器的基礎有兩個軟件包:`org.springframework.beans`和`org.springframework.context`。 [`BeanFactory`](https://docs.spring.io/spring/docs/1.2.x/reference/beans.html) 接口管理許多 Bean,同時,這些 Bean 之間也具有依賴關系。 它提供了基本功能,更重要的是,它提供了`ApplicationContext`,它是`BeanFactory`的子接口。 在應用程序運行時,它是只讀的;如果實現允許并管理 Bean 的生命周期,則可以重新加載它。 此時,依賴關系不是由 Java 對象管理,而是由框架管理。 **倒置** (如果您知道我的意思)。 **配置元數據**是賦予與我在本教程開始時提到的任務相關的指令的術語 - 對象的實例化,配置和組裝。 ![IoC Container](https://img.kancloud.cn/e2/eb/e2eb11d4a98ed739171e20c4841a36c7_689x350.jpg) 從上圖可以看到,本質上發生的是配置元數據(對象的實例化,配置和組裝),并且 JOVO 正在傳遞到 IOC 容器(很可能是`ApplicationContext`的實例)。 ### 如何實例化`ApplicationContext` ```java ApplicationContext context = new ClassPathXmlApplicationContext("services.xml"); ``` 將`ApplicationContext`也視為簡單的配置。 它從 XML 文件或注釋中加載“配置”。 需要在應用程序的開頭創建`ApplicationContext`,以便它讀取應用程序讀取所需的所有內容。 以防萬一,您可以在應用程序中包含許多`ApplicationContext`。 您甚至可以使它們從同一配置文件讀取。 這是個好習慣嗎? 取決于您要實現的目標。 大多數人會建議將所有 bean 配置在一個位置(通過 XML 或另一個位置)并由單個應用程序上下文加載。 以下示例取自[原始 Spring 文檔](https://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/beans.html),請隨時查看以獲取有關 Spring 的深入了解。 `services.xml` ```java <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- services --> <bean id="petStore" class="org.springframework.samples.jpetstore.services.PetStoreServiceImpl"> <property name="accountDao" ref="accountDao"/> <property name="itemDao" ref="itemDao"/> <!-- additional collaborators and configuration for this bean go here --> </bean> <!-- more bean definitions for services go here --> </beans> ``` 同樣,您可以將`services.xml`視為配置文件,然后將`ApplicationContext`加載/讀取。 ## 結論 當您只用簡單的 DI(依賴注入)而無法使用時,為什么還要使用 IoC 容器? 好吧,這里有幾個原因: 1. 優雅 2. 易于在生產和測試模式之間進行切換 1. 只需更改配置 但是有一個缺點,那就是有時正確地實現 IoC 容器有些棘手。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看