最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2023年01月03日 14:39:57   作者:熱愛編程的小白白  
自動(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中所依賴的類類型或接口類 型屬性賦值

①場景模擬

創(chuàng)建類 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)建類 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)建類 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>

③測試

    @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ù)類型匹配 IOC 容器中的某個(gè)兼容類型的 bean ,為屬性自動(dòng)賦值

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

若在IOC中,有多個(gè)兼容類型的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>

⑤測試

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

byName :將自動(dòng)裝配的屬性的屬性名,作為 bean 的 id 在 IOC 容器中匹配相對應(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

积石山| 湘潭市| 文登市| 鸡西市| 泽库县| 惠州市| 当雄县| 久治县| 泰和县| 十堰市| 东港市| 读书| 古浪县| 石棉县| 衡东县| 洛浦县| 玉溪市| 汝阳县| 阳城县| 嘉禾县| 平凉市| 酉阳| 扬州市| 唐河县| 富平县| 沙田区| 铜陵市| 乌鲁木齐县| 连江县| 大冶市| 亳州市| 和平县| 英山县| 禄丰县| 曲周县| 舒兰市| 和顺县| 南澳县| 武城县| 海安县| 巨鹿县|