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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

关于Spring的IOC和DI

發布時間:2024/4/13 javascript 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于Spring的IOC和DI 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原始調用模型

Spring的演化過程

Spring的調用過程

=======================================

IoC【理解】【應用】【重點】

1.IoC(Inversion of Control)控制反轉

????????????? A:控制:控制的雙方是什么?誰控制誰?

主控方:Spring

被控方:應用程序所使用的資源

???????????????????? (原始)應用程序控制自己執行操作需要使用的外部資源

???????????????????? (Spring)Spring控制整個程序中所需要使用的外部資源

????????????? B.反轉:什么是反轉?反轉什么?

正向:應用程序直接調用資源

反向:應用程序依賴Spring為其提供資源

???????????????????? 反轉的是資源的控制權

???????????????????? 應用程序由主動調用資源,變為被動的等待Spring提供資源

????????????? C.有什么好處?

正向缺點:應用程序控制的資源分布在程序的每一個地方

反向的優點:所有的資源都在Spring中,便于管理

總結:Spring反向控制應用程序所需要使用的外部資源。資源受Spring管理,利用率最大化。

?????? 2.Spring模型演化過程

?????? A.基于分層設計

????????????? UserAction?????????????????? 使用UserService,new UserService()

????????????? UserService????????????????? 使用UserDAO,new UserDAO()

????????????? UserDAO

?????? B.工廠模式,使用面向接口編程設計,解決層與層之間的緊耦合

????????????? 制作接口,制作實現類,制作對象工廠

?????? C.工廠模式+配置

????????????? 制作XML文件,將實現類配置到XML文件中

????????????? 讀取XML文件中的配置信息,得到實現類的類名

????????????? 使用反射思想,獲取實現類對象 class.newInstance();

?????? D.Spring設計雛形 自動的工廠+配置

????????????? 工廠由Spring提供,實現類使用XML格式配置

?????? 3.IoC基礎實例

??? A.導入jar包(6個)

??? B.制作log4j對應的配置文件

??? C.在src目錄下創建核心配置文件applicationContext.xml

?????????? 說明:格式可以從xsd-config.html獲取

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

???????????????????????? ">

?????????? </beans>

??? D.將應用程序需要使用的資源配置成Spring的Bean

?????????? <!-- Spring管理的資源全部聲明到配置文件中 -->

??? <!-- 所有資源以Bean的形式存在 -->

??? <!-- bean:聲明一個資源Bean -->

??? <!-- bean:id:用于區分bean的標識 -->

??? <!-- bean:class:bean對應的模型類名 -->

??? <bean id="userDao" class="cn.itcast.spring.ioc.UserDao">?????? </bean>

??? E.創建ApplicationContext對象

?????????? ApplicationContext ctx = new ClassPathXmlApplicationContext("配置文件名");

?????????? ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");

??? F.獲取Bean對象

?????????? 使用應用上下文對象獲取

?????????? ctx.getBean("bean的id屬性值");

?????????? ctx.getBean("userService");

?????? ?????? 補充:使用文件系統獲取配置信息,要求配置文件在工程路徑下(少用)

????????????? ApplicationContext ctx = new FileSystemXmlApplicationContext("applicationContext.xml");

=================================

DI【理解】【應用】【重點】

?????? 1.DI(Dependency Injection)依賴注入指應用程序依賴Spring為其提供運行時所需的資源

?????? 2.DI實例

????????????? A.在應用程序中聲明要使用的資源

????????????? ?????? private String msg;

????????????? B.為其提供setter訪問器

????????????? ?????? public void setMsg(String msg) {

???????????????????? ?????? this.msg = msg;

????????????? ?????? }

????????????? C. 在Bean配置中配置該資源對象具有某個屬性,屬性可以配置多個

?????? ?????? ?????? <bean id="userService" class="cn.itcast.ioc.helloworld.UserService">

?????? ?????? ????????????? <!-- 在配置中,為該Bean需要注入的資源進行初始化 -->

??????????????????????????? <!-- property:為該Bean注入屬性 -->

??????????????????????????? <!-- property:name:注入的屬性名稱(變量名) -->

?????? ?????? ?????? ?????? <property name="msg" value="itcast"/>

?????? ?????? ?????? </bean>

????????????? 注意:當配置中出現的屬性在Bean類中不存在時,拋出異常

3.IoC與DI區別

?????? ?????? 同一件事,站在不同角度上看待問題的不同描述

?????? ?????? IoC:Spring立場

?????? ?????? DI:應用程序立場

?

轉載于:https://www.cnblogs.com/DreamDrive/p/4090988.html

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

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

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