日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IoC和DI的区别

發布時間:2023/12/20 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IoC和DI的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先我們一般回答面試題都是先說出他們兩個是什么,然后在說他們之間的區別.嘻嘻重點在最后后面

1.IoC(Inverse of Control 反轉控制): 將對象創建權利交給Spring工廠進行管理。

理解IoC

2.DI:Dependency Injection,翻譯過來就是:依賴注入。是指spring框架在創建bean對象時,動態的將依賴對象注入到bean組件中

原來在使用Spring之前: Class UserServiceImpl{ private String msg;public void setMsg( String msg ){ this. msg = msg; } } UserService userService = new UserServiceImpl(); userService.setMsg(“世界”); 使用了Spring之后。我們只需要使用xml配置,或者注解配置。就可以直接注入。擴展UserServiceImpl 添加msg屬性及其setter方法 /*** UserService接口的實現類* @author joedy**/ public class UserServiceImpl implements UserService {private String msg;@Overridepublic void sayHello() {System.out.println("hello " + msg);}// UserServiceImpl的對象,依賴于String類型的msg數據public void setMsg(String msg) {this.msg = msg;}} 通過配置屬性注入 通過property標簽注入依賴數據: <?xml version="1.0" encoding="UTF-8"?> <!-- xml配置的約束頭信息 --> <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"><!-- 配置使用哪個實現類,對UserService接口進行實例化 --><!-- id:唯一標識,通過它獲取配置的實現類。 class:配置UserService這個實現類 --><bean id="userService" class="com.atguigu.spring.quickstart.UserServiceImpl"><!-- spring框架初始化UserService對象后,自動調用該對象的setMsg方法,注入依賴數據:msg --><property name="msg" value="世界"></property></bean></beans> 測試 傳統方式需要修改代碼,spring方式不需要修改任何代碼: public class UserServiceTest {@Testpublic void test1() {// 傳統寫法,緊密耦合UserServiceImpl userService = new UserServiceImpl();// 手動注入userService對象依賴的msg數據userService.setMsg("世界");userService.sayHello();}@Testpublic void test2() {// 反射 + 工廠 + 配置文件,實例化UserService接口對象ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");// 通過工廠根據配置名稱獲取實例化對象UserService userService = (UserService) context.getBean("userService");userService.sayHello();}}

IoC和DI的區別?

IoC:控制反轉,指將對象的創建權,反轉到spring容器。

DI:依賴注入,指在創建對象的過程中,將對象依賴的屬性通過配置進行注入。DI的實現依賴于IoC,先有控制反轉才有依賴注入

?

總結

以上是生活随笔為你收集整理的IoC和DI的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。