<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之旅 廣告
                [TOC] <br/> <br/> > ### `alias` * `alias` 的中文意思是“別名”,在 `Spring `中,我們可以使用 `alias `標簽給` bean` 起個別名。 <br/> > ### ` autowire` * 自動注入 <br/> > ### `FactoryBean` * `FactoryBean` 是一個接口,可以通過實現`getObject()`自己創建`bean`,該`bean`也是由`IOC`管理,相當于具體創建`bean`的過程由用戶自己創建。 ``` public class HelloFactoryBean implements FactoryBean<Hello> { @Override public Hello getObject() throws Exception { Hello hello = new Hello(); hello.setContent("hello"); return hello; } @Override public Class<?> getObjectType() { return Hello.class; } @Override public boolean isSingleton() { return true; } } ``` <br/> > ### 實現 `ApplicationContextAware `接口 * `ApplicationContextAware`也是`Spring`提供的拓展性接口,可以讓我們拿到 `ApplicationContext`實例,然后我們可以利用這個實例做一些bean的信息獲取。 ``` public class NewsProvider implements ApplicationContextAware { private ApplicationContext applicationContext; private News news; @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.applicationContext = applicationContext; } /** 每次都從 applicationContext 中獲取一個新的 bean */ public News getNews() { return applicationContext.getBean("news", News.class); } public void setNews(News news) { this.news = news; } } ``` <br/> > ### `DependsOn` * 如某個 `bean` 并不直接依賴于其他 `bean`,但又需要其他 `bean` 先實例化好,這個時候就需要使用 `DependsOn` 特性 <br/> > ### `BeanPostProcessor` * `BeanPostProcessor` 是 `Spring` 框架的一個擴展點,通過實現 `BeanPostProcessor` 接口,我們就可插手` bean` 實例化的過程。比如大家熟悉的` AOP` 就是在 `bean` 實例后期間將切面邏輯織入 `bean `實例中的,`AOP` 也正是通過 `BeanPostProcessor` 和` IOC `容器建立起了聯系。 * `BeanFactoryPostProcessor`,用戶可以通過這個拓展點插手容器啟動的過程。 *** > ### 參考 #### [Spring IOC 容器源碼分析系列文章導讀](http://www.tianxiaobo.com/2018/05/30/Spring-IOC-%E5%AE%B9%E5%99%A8%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90%E7%B3%BB%E5%88%97%E6%96%87%E7%AB%A0%E5%AF%BC%E8%AF%BB/)
                  <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>

                              哎呀哎呀视频在线观看