亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Spring基于xml實(shí)現(xiàn)自動(dòng)裝配流程詳解

 更新時(shí)間:2023年01月03日 14:39:57   作者:熱愛(ài)編程的小白白  
自動(dòng)裝配是使用spring滿足bean依賴的一種方法,spring會(huì)在應(yīng)用上下文中為某個(gè)bean尋找其依賴的bean,Spring中bean有三種裝配機(jī)制,分別是:在xml中顯式配置、在java中顯式配置、隱式的bean發(fā)現(xiàn)機(jī)制和自動(dòng)裝配

自動(dòng)裝配:

根據(jù)指定的策略,在IOC容器中匹配某一個(gè)bean,自動(dòng)為指定的bean中所依賴的類(lèi)類(lèi)型或接口類(lèi) 型屬性賦值

①場(chǎng)景模擬

創(chuàng)建類(lèi) UserController

public class UserController {
    private UserService userService;
    public void setUserService(UserService userService) {
        this.userService = userService;
    }
    public void saveUser(){
        userService.saveUser();
    }
}

創(chuàng)建接口 UserService

public interface UserService {
    void saveUser();
}

創(chuàng)建類(lèi) UserServiceImpl 實(shí)現(xiàn)接口 UserService

public class UserServiceImpl implements UserService {
    private UserDao userDao;
    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }
    @Override
    public void saveUser(){
        userDao.saveUser();
    }
}

創(chuàng)建接口 UserDao

public interface UserDao {
    void saveUser();
}

創(chuàng)建類(lèi) UserDaoImpl 實(shí)現(xiàn)接口 UserDao

public class UserDaoImpl implements UserDao {
    @Override
    public void saveUser() {
        System.out.println("保存成功");
    }
}

②配置 bean

    <bean id="userController" class="com.atguigu.spring.Controller.UserController">
        <property name="userService" ref="userService"></property>
    </bean>
    <bean id="userService"  class="com.atguigu.spring.Service.impl.UserServiceImpl">
        <property name="userDao" ref="userDao"></property>
    </bean>
    <bean id="userDao" class="com.atguigu.spring.Dao.impl.UserDaoImpl"></bean>

③測(cè)試

    @Test
    public void test2(){
        ConfigurableApplicationContext ioc = new ClassPathXmlApplicationContext("spring-autowire-xml.xml");
        UserController userController = ioc.getBean("userController", UserController.class);
        userController.saveUser();
    }

④使用bean標(biāo)簽的autowire屬性設(shè)置自動(dòng)裝配效果

自動(dòng)裝配方式:byType

byType :根據(jù)類(lèi)型匹配 IOC 容器中的某個(gè)兼容類(lèi)型的 bean ,為屬性自動(dòng)賦值

若在IOC中,沒(méi)有任何一個(gè)兼容類(lèi)型的bean能夠?yàn)閷傩再x值,則該屬性不裝配,即值為默認(rèn)值 null

若在IOC中,有多個(gè)兼容類(lèi)型的bean能夠?yàn)閷傩再x值,則拋出異常 NoUniqueBeanDefinitionException

    <bean id="userController" class="com.atguigu.spring.Controller.UserController" autowire="byType">
<!--        <property name="userService" ref="userService"></property>-->
    </bean>
    <bean id="userService"  class="com.atguigu.spring.Service.impl.UserServiceImpl" autowire="byType">
<!--        <property name="userDao" ref="userDao"></property>-->
    </bean>
    <bean id="userDao" class="com.atguigu.spring.Dao.impl.UserDaoImpl"></bean>

⑤測(cè)試

自動(dòng)裝配方式:byName

byName :將自動(dòng)裝配的屬性的屬性名,作為 bean 的 id 在 IOC 容器中匹配相對(duì)應(yīng)的 bean 進(jìn)行賦值

    <bean id="userController" class="com.atguigu.spring.Controller.UserController" autowire="byName">
<!--        <property name="userService" ref="userService"></property>-->
    </bean>
    <bean id="userService"  class="com.atguigu.spring.Service.impl.UserServiceImpl" autowire="byName">
<!--        <property name="userDao" ref="userDao"></property>-->
    </bean>
    <bean id="userDao" class="com.atguigu.spring.Dao.impl.UserDaoImpl"></bean>

到此這篇關(guān)于Spring基于xml實(shí)現(xiàn)自動(dòng)裝配流程詳解的文章就介紹到這了,更多相關(guān)Spring自動(dòng)裝配內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java使用excel工具類(lèi)導(dǎo)出對(duì)象功能示例

    Java使用excel工具類(lèi)導(dǎo)出對(duì)象功能示例

    這篇文章主要介紹了Java使用excel工具類(lèi)導(dǎo)出對(duì)象功能,結(jié)合實(shí)例形式分析了java創(chuàng)建及導(dǎo)出Excel數(shù)據(jù)的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-10-10
  • windows命令行中java和javac、javap使用詳解(java編譯命令)

    windows命令行中java和javac、javap使用詳解(java編譯命令)

    最近重新復(fù)習(xí)了一下java基礎(chǔ),這里便講講對(duì)于一個(gè)類(lèi)文件如何編譯、運(yùn)行、反編譯的。也讓自己加深一下印象
    2014-03-03
  • springboot自定義過(guò)濾器的方法

    springboot自定義過(guò)濾器的方法

    這篇文章主要為大家詳細(xì)介紹了springboot自定義過(guò)濾器的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • java定時(shí)任務(wù)cron表達(dá)式每周執(zhí)行一次的坑及解決

    java定時(shí)任務(wù)cron表達(dá)式每周執(zhí)行一次的坑及解決

    這篇文章主要介紹了java定時(shí)任務(wù)cron表達(dá)式每周執(zhí)行一次的坑及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • 詳解java中的阻塞隊(duì)列

    詳解java中的阻塞隊(duì)列

    這篇文章主要介紹了java中的阻塞隊(duì)列的相關(guān)知識(shí),文中代碼非常詳細(xì),供大家參考和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • Java中Collections.sort的使用

    Java中Collections.sort的使用

    本文主要介紹了Java中Collections.sort的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • MyBatis Plus Mapper CRUD接口測(cè)試方式

    MyBatis Plus Mapper CRUD接口測(cè)試方式

    在數(shù)據(jù)庫(kù)管理系統(tǒng)中,插入記錄是添加新數(shù)據(jù)條目,而刪除操作包括根據(jù)主鍵ID單條刪除和批量刪除,也可以基于特定條件進(jìn)行刪除,刪除操作的SQL語(yǔ)句是通過(guò)鍵值對(duì)在Map中拼接而成,如delete from 表 where key1=value1 AND key2=value2
    2024-09-09
  • JAVA hashCode使用方法詳解

    JAVA hashCode使用方法詳解

    本文詳細(xì)解釋了JAVA hashCode的使用方法,提供了測(cè)試hashCode和equals方法的使用實(shí)例
    2013-11-11
  • Springboot2.0自適應(yīng)效果錯(cuò)誤響應(yīng)過(guò)程解析

    Springboot2.0自適應(yīng)效果錯(cuò)誤響應(yīng)過(guò)程解析

    這篇文章主要介紹了Springboot2.0自適應(yīng)效果錯(cuò)誤響應(yīng)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Spring Boot中的屬性綁定的實(shí)現(xiàn)

    Spring Boot中的屬性綁定的實(shí)現(xiàn)

    這篇文章主要介紹了Spring Boot中的屬性綁定的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04

最新評(píng)論