<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ```shell $ git checkout -b 02 # 檢出新分支 切換到一個新分支 '02' ``` 修改 `BeanDefinition.java`,修改后的內容為: ```java package net.zhaoxuyang.ioc.bean; public class BeanDefinition { private Object bean; private Class beanClass; private String beanClassName; public BeanDefinition(){} public BeanDefinition(Object bean) { this.bean = bean; } public Object getBean() { return bean; } public void setBean(Object bean) { this.bean = bean; } public Class getBeanClass() { return beanClass; } public void setBeanClass(Class beanClass) { this.beanClass = beanClass; } public String getBeanClassName() { return beanClassName; } public void setBeanClassName(String beanClassName) { this.beanClassName = beanClassName; try{ this.beanClass = Class.forName(beanClassName); } catch (ClassNotFoundException ex) { System.out.println(ex); } } } ``` 刪除文件 `/Code/z8g/ioc/src/main/java/net/zhaoxuyang/ioc/bean/BeanFactory.java` ,新增三個文件: - `BeanFactory.java` - `AbstractBeanFactory.java` - `AutowrieCapableBeanFactory.java` `BeanFactory.java` 的內容為: ```java package net.zhaoxuyang.ioc.bean; public interface BeanFactory { public Object getBean(String name); public void registerBeanDefinition(String name, BeanDefinition beanDefinition); } ``` `AbstractBeanFactory.java` 的內容為: ```java package net.zhaoxuyang.ioc.bean; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; public abstract class AbstractBeanFactory implements BeanFactory{ private Map<String, BeanDefinition> beanDefinitionMap; public AbstractBeanFactory(){ beanDefinitionMap = new ConcurrentHashMap<>(16); } @Override public Object getBean(String name) { return beanDefinitionMap.get(name).getBean(); } @Override public void registerBeanDefinition(String name, BeanDefinition beanDefinition) { Object bean = doCreateBean(beanDefinition); beanDefinition.setBean(bean); beanDefinitionMap.put(name, beanDefinition); } protected abstract Object doCreateBean(BeanDefinition beanDefinition); } ``` `AutowrieCapableBeanFactory.java` 的內容為: ```java package net.zhaoxuyang.ioc.bean; public class AutowireCapableBeanFactory extends AbstractBeanFactory { @Override protected Object doCreateBean(BeanDefinition beanDefinition) { Object bean = null; try { beanDefinition.getBeanClass().newInstance(); } catch (InstantiationException | IllegalAccessException ex) { System.out.println(ex); } return bean; } } ``` 新增測試服務 `/Code/z8g/ioc/src/test/java/net/zhaoxuyang/ioc/bean/TestService.java` ,內容為: ```java package net.zhaoxuyang.ioc.bean; public class TestService { public void echo(){ System.out.println("Hello"); } } ``` 修改測試文件 `BeanFactoryTest.java` ,內容為: ```java package net.zhaoxuyang.ioc.bean; import org.junit.Test; public class BeanFactoryTest { @Test public void testGetBean() { // [1] 初始化beanFactory BeanFactory beanFactory = new AutowireCapableBeanFactory(); // [2] 注入bean BeanDefinition beanDefinition = new BeanDefinition(); beanDefinition.setBeanClassName("net.zhaoxuyang.ioc.bean.TestService"); beanFactory.registerBeanDefinition("testService", beanDefinition); // [3] 獲取bean TestService service = (TestService) beanFactory.getBean("testService"); service.echo(); } } ``` 在終端輸入以下命令: ```shell $ git add . $ git commit -m '02' ```
                  <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>

                              哎呀哎呀视频在线观看