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

歡迎訪問 生活随笔!

生活随笔

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

javascript

浅谈Spring IOC和DI及Spring工厂类

發布時間:2024/7/5 javascript 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浅谈Spring IOC和DI及Spring工厂类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

淺談Spring IOC和DI及Spring的工廠類

文章目錄

  • 淺談Spring IOC和DI及Spring的工廠類
    • 一. IOC
      • 1.什么是IOC
      • 2.為什么使用IOC
        • 傳統開發模式的弊端
      • 3. 使用spring-IOC步驟
    • 二. DI
      • 1.什么是DI
      • 2.傳統面向接口編程
      • 2.使用DI方式
    • 三. Spring的工廠類

一. IOC

1.什么是IOC

? IOC: Inversion of Control(控制反轉),即把對象的創建權交給Spring管理。

2.為什么使用IOC

傳統開發模式的弊端

? (1)業務和實現類過于緊密,耦合性太高,底層業務要修改大量源代碼

? (2)通過工廠可以實現接口與實現業務的分離,相對于(1)已經有了很大的改進

? (3)在工廠內部使用配置文件加載,相對于(2)又有了改進

我們的目標是:開發者不必再為單實例模式類、屬性文件解析等這些很底層的需求編寫代碼,可以更專注于上層的應用。

解決方法:可以通過Spring提供的IoC容器,我們可以將對象之間的依賴關系交由Spring進行控制,避免硬編碼所造成的過度程序耦合。

3. 使用spring-IOC步驟

(1)添加jar包:
點擊地址跳轉:spring相關jar包下載地址
(2)創建配置文件,文件名稱applicationContext.xml放在當前工程resource文件夾里

<?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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"></beans>

(3)在applicationContext.xml中添加要管理的類

<!--id:為自己起的名稱 class:為實現接口類的全路徑--!> <bean id="userDao" class="com.Springioc.Dao.Impl"/>

(4)測試使用

public void save(){//加載配置文件ApplicationContext applicationContext=new ClassPathXmlApplicationContext(configLocation:"applicationContext.xml");//參數為配置文件當中<bean>的id UserDao userDao=(UserDao)applicationContext.getBean(s:"userDao");userDao.save()}

二. DI

1.什么是DI

DI即依賴注入,是給spring管理類當中依賴的屬性,通過配置文件進行賦值的過程。前提必須有IOC的環境,Spring管理這個類的時候才能將類的依賴的屬性值注入(設置)進來。

2.傳統面向接口編程

UserDao dao=new UserDaoMysqlImp1(): dao.name="myxq";

使用面向接口編程沒有辦法設置屬性值

2.使用DI方式

(1)實現類當中的屬性要提供set方法

public class UserDaoMysqlImpl implements UserDao {public String name;//依賴注入要提供set方法public void setName(String name){this.name=name;}@Override public void save(){System.out.println("mysql--save");System.out.println("name="+name): } }

(2)在配置文件當中配置依賴注入

<?xml version="1.0"encoding="UTF-8"> Kbeans 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"><!--id:為自己起的名稱class:為接口實現類的全路徑一> <bean id="userDao" class="com.Springioc.dao.UserDaoMysqlImpl"> <property name="name" value="myxq"/> </bean〉 </beans〉

(3)測試

public void save(){//加載配置文件ApplicationContext applicationContext=new ClassPathXmlApplicationContext(configLocation:"applicationContext.xml");//參數為配置文件當中<bean>的id UserDao userDao=(UserDao)applicationContext.getBean(s:"userDao");userDao.save() }

三. Spring的工廠類

  • BeanFactory:當調用getBean的時候才會創建實例對象
  • ApplicationContext:當加載配置文件時候就會創建實例對象
  • ApplicationContext實現類
    ClassPathXmlApplicationContext:加載類路徑下的配置文件(常用)
    FileSystemXmlApplicationContext:加載文件系統下的配置文件
  • 總結

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

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