IoC

1.早期對(duì)象創(chuàng)建(什么時(shí)候用到,什么時(shí)候自己手動(dòng)創(chuàng)建)

public void testSave1() {
    UserDao userDao = new UserDaoImpl();
    userDao.save();
}

2.對(duì)象由工廠創(chuàng)建(其實(shí)這里已經(jīng)有控制反轉(zhuǎn)的意思,對(duì)象創(chuàng)建由手動(dòng)創(chuàng)建轉(zhuǎn)移到工廠創(chuàng)建)

public class BeanFactory {
    public static UserDao getUserDao() {
        return new UserDaoImpl(); // 還可以做成配置文件反射做
    }
}
public void testSave2() {
    UserDao userDao = BeanFactory.getUserDao();
    userDao.save();
}

3.具體看看Spring做法

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

    <bean id="userDao" class="com.boomsecret.ioc.UserDaoImpl"/>
</beans>

public void testSave3() {
    String configPath = "com/boomsecret/ioc/bean.xml";
    ApplicationContext applicationContext = new ClassPathXmlApplicationContext(configPath);
    UserDao userDao = applicationContext.getBean("userDao", UserDao.class);
    userDao.save();
}

4.總結(jié)

Spring其實(shí)就是一個(gè)大工廠,可以產(chǎn)生各種Bean  
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容