中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring的核心基礎IOC與DI怎么掌握

發布時間:2023-05-11 15:19:01 來源:億速云 閱讀:143 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“Spring的核心基礎IOC與DI怎么掌握”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Spring的核心基礎IOC與DI怎么掌握”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

一、Spring簡介

1 Spring介紹

1.1 為什么要學

Spring技術是JavaEE開發必備技能,企業開發技術選型命中率>90%

專業角度

簡化開發,降低企業級開發的復雜性框架整合,高效整合其他技術,提高企業級應用開發與運行效率

Spring的核心基礎IOC與DI怎么掌握

1.2 學什么

簡化開發

  •         IOC(反轉控制)

  •         AOP(面向切面編程)

  •                 事務處理

框架整合

  • MyBatis

  • MyBatis-plus

  • Struts

  • Struts2

  • Hibernate……

2 初識Spring

2.1 Spring家族

官網:https://spring.ioSpring發展到今天已經形成了一種開發的生態圈,Spring提供了若干個項目,每個項目用于完成特定的功能。

Spring的核心基礎IOC與DI怎么掌握

2.2 Spring發展史

Spring的核心基礎IOC與DI怎么掌握

注意:現在已經有spring6了哦!

3 Spring體系結構

3.1 Spring Framework系統架構圖

Spring Framework是Spring生態圈中最基礎的項目,是其他項目的根基

Spring的核心基礎IOC與DI怎么掌握

4 Spring核心概念

問題導入

4.1 核心概念

IOC(Inversion of Control)控制反轉

使用對象時,由主動new產生對象轉換為由外部提供對象,此過程中對象創建控制權由程序轉移到外部,此思想稱為控制反轉。通俗的講就是“將new對象的權利交給Spring,我們從Spring中獲取對象使用即可

Spring技術對IoC思想進行了實現

Spring提供了一個容器,稱為IOC容器,用來充當IoC思想中的“外部”IOC容器負責對象的創建、初始化等一系列工作,被創建或被管理的對象在IoC容器中統稱為Bean

DI(Dependency Injection)依賴注入

在容器中建立bean與bean之間的依賴關系的整個過程,稱為依賴注入。

Spring的核心基礎IOC與DI怎么掌握

目標:充分解耦

  • 使用IoC容器管理bean(IOC)

  • 在IoC容器內將有依賴關系的bean進行關系綁定(DI)

最終效果

  • 使用對象時不僅可以直接從IoC容器中獲取,并且獲取到的bean已經綁定了所有的依賴關系

二、IOC和DI入門

1 IOC入門

問題導入

<bean>標簽中id屬性和class屬性的作用是什么?

1.1 門案例思路分析

管理什么?(Service與Dao)

如何將被管理的對象告知IOC容器?(配置文件)

被管理的對象交給IOC容器,如何獲取到IoC容器?(接口)

IOC容器得到后,如何從容器中獲取bean?(接口方法)

使用Spring導入哪些坐標?(pom.xml)

1.2 實現步驟
【第一步】導入Spring坐標
【第二步】定義Spring管理的類(接口)
【第三步】創建Spring配置文件,配置對應類作為Spring管理的bean對象
【第四步】初始化IOC容器(Spring核心容器/Spring容器),通過容器獲取bean對象
1.3 實現代碼

【第一步】導入Spring坐標

<dependencies>
    <!--導入spring的坐標spring-context,對應版本是5.2.10.RELEASE-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.2.10.RELEASE</version>
    </dependency>
</dependencies>

【第二步】定義Spring管理的類(接口)

BookDao接口和BookDaoImpl實現類

public interface BookDao {
    public void save();
}

public class BookDaoImpl implements BookDao {
    public void save() {
        System.out.println("book dao save ...");
    }
}

BookService接口和BookServiceImpl實現類

public interface BookService {
    public void save();
}

public class BookServiceImpl implements BookService {
    private BookDao bookDao = new BookDaoImpl();
    public void save() {
        System.out.println("book service save ...");
        bookDao.save();
    }
}

【第三步】創建Spring配置文件,配置對應類作為Spring管理的bean對象

定義applicationContext.xml配置文件并配置BookServiceImpl

<?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">
 
    <!--
		bean標簽:表示配置bean
    	id屬性:表示給bean起名字
    	class屬性:表示給bean定義類型
	-->
    <bean id="bookService" class="com.itheima.service.impl.BookServiceImpl"></bean>

</beans>

注意事項:bean定義時id屬性在同一個上下文中(IOC容器中)不能重復

【第四步】初始化IOC容器(Spring核心容器/Spring容器),通過容器獲取Bean對象

public class App {
    public static void main(String[] args) {
        //1.創建IoC容器對象,加載spring核心配置文件
        ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
        //2 從IOC容器中獲取Bean對象(BookService對象)
        BookService bookService= (BookService)ctx.getBean("bookService");
        //3 調用Bean對象(BookService對象)的方法
        bookService.save();
    }
}
1.4 運行結果

Spring的核心基礎IOC與DI怎么掌握

2 DI入門

<property>標簽中name屬性和ref屬性的作用是什么?

2.1 DI入門思路分析

基于IOC管理bean

Service中使用new形式創建的Dao對象是否保留?(否)

Service中需要的Dao對象如何進入到Service中?(提供方法)

Service與Dao間的關系如何描述?(配置)

2.2 實現步驟

【第一步】刪除使用new的形式創建對象的代碼
【第二步】提供依賴對象對應的setter方法
【第三步】配置service與dao之間的關系

2.3 實現代碼

【第一步】刪除使用new的形式創建對象的代碼

public class BookServiceImpl implements BookService {
    private BookDao bookDao;  //【第一步】刪除使用new的形式創建對象的代碼
    public void save() {
        System.out.println("book service save ...");
        bookDao.save();
    }
}

【第二步】提供依賴對象對應的setter方法

public class BookServiceImpl implements BookService {
    private BookDao bookDao;
    public void save() {
        System.out.println("book service save ...");
        bookDao.save();
    }
    //【第二步】提供依賴對象對應的setter方法
    public void setBookDao(BookDao bookDao) {
        this.bookDao = bookDao;
    }
}

【第三步】配置service與dao之間的關系

在applicationContext.xml中配置

<?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">
    <!--
		bean標簽:表示配置bean
    	id屬性:表示給bean起名字
    	class屬性:表示給bean定義類型
	-->
    <bean id="bookDao" class="com.itheima.dao.impl.BookDaoImpl"/>

    <bean id="bookService" class="com.itheima.service.impl.BookServiceImpl">
        <!--配置server與dao的關系
			property標簽:表示配置當前bean的屬性
        	name屬性:表示配置哪一個具體的屬性
        	ref屬性:表示參照哪一個bean
		-->
        <property name="bookDao" ref="bookDao"/>
    </bean>
</beans>
2.4 圖解演示

Spring的核心基礎IOC與DI怎么掌握

讀到這里,這篇“Spring的核心基礎IOC與DI怎么掌握”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

和林格尔县| 克山县| 伊通| 玉环县| 大安市| 吴川市| 瑞金市| 迁西县| 丹棱县| 大丰市| 宣武区| 卫辉市| 和静县| 济南市| 德令哈市| 信阳市| 永善县| 辽宁省| 隆回县| 石屏县| 阿尔山市| 夏津县| 古丈县| 北碚区| 深圳市| 井研县| 沂南县| 德化县| 阜宁县| 竹北市| 昭通市| 瑞昌市| 根河市| 天祝| 仲巴县| 泸州市| 晋江市| 辽宁省| 楚雄市| 汾阳市| 萍乡市|