2020久久超碰欧美精品最新亚洲欧美日韩久久精品,国产福利电影一区二区三区,亚洲欧美日韩一区在线观看,亚洲国产欧美日韩欧美特级,亚洲欧美日韩成人一区久久,欧美日韩精品一区二区三区不卡,国产欧美日韩va另类影音先锋,亚洲欧美日韩久久精品,亚洲欧美日韩国产成人精品影院,亚洲国产欧美日韩精品一区二区三区,欧美日韩国产成人高清视频,日韩久久精品国产免费观看频道,久久人人爽人人爽从片av高清,国产精品综合一区二区

首頁技術文章正文

什么是Spring的loC和Dl?

更新時間:2022-05-27 來源:黑馬程序員 瀏覽量:

DI的全稱是Dependency Injection,中文稱之為依賴注入。它與控制反轉(IoC)的含義相同,只不過這兩個稱呼是從兩個角度描述的同一個概念。

IoC

在使用Spring框架之后,對象的實例不再由調用者來創建,而是由Spring容器來創建,Spring容器會負責控制程序之間的關系,而不是由調用者的程序代碼直接控制。這樣,控制權由應用代碼轉移到了Spring容器,控制權發生了反轉,這就是控制反轉。

DI
從Spring容器的角度來看,Spring容器負責將被依賴對象賦值給調用者的成員變量,這相當于為調用者注入了它依賴的實例,這就是Spring的依賴注入。


使用setter方法實現依賴注入

1.在com.itheima.ioc包中,創建接口UserService,在接口中編寫一個say()方法。

package com.itheima.ioc;
public interface UserService {
public void say();
}

2.在com.itheima.ioc包中,創建UserService接口的實現類UserServiceImpl,在類中聲明userDao屬性,并添加屬性的setter方法。

package com.itheima.ioc;
public class UserServiceImpl implements UserService {
         private UserDao userDao;
         public void setUserDao(UserDao userDao) {
                  this.userDao = userDao;
         }
         public void say(){
                  this.userDao.say();
                  System.out.println("userService say hello World !");
         }
}


3.在配置文件applicationContext.xml中,創建一個id為userService的Bean,該Bean用于實例化UserServiceImpl類的信息,并將userDao的實例注入到userService中。

<bean id="userService" class="com.itheima.ioc.UserServiceImpl">
    <property name="userDao" ref="userDao"/>
</bean>

4.在com.itheima.ioc包中,創建測試類TestDI,來對程序進行測試。

package com.itheima.ioc;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestDI {
         public static void main(String[] args) {
                  ApplicationContext applicationContext =
                new ClassPathXmlApplicationContext("applicationContext.xml");
                 UserService userService =
                              (UserService)applicationContext.getBean("userService");
                 userService.say();
        }
}

5.執行程序后,控制臺的輸出結果如圖所示。

使用setter方法實現依賴注入






分享到:
在線咨詢 我要報名
和我們在線交談!