您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“Spring的核心基礎IOC與DI怎么掌握”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Spring的核心基礎IOC與DI怎么掌握”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
Spring技術是JavaEE開發必備技能,企業開發技術選型命中率>90%
專業角度
簡化開發,降低企業級開發的復雜性框架整合,高效整合其他技術,提高企業級應用開發與運行效率
簡化開發
IOC(反轉控制)
AOP(面向切面編程)
事務處理
框架整合
MyBatis
MyBatis-plus
Struts
Struts2
Hibernate……
官網:https://spring.ioSpring發展到今天已經形成了一種開發的生態圈,Spring提供了若干個項目,每個項目用于完成特定的功能。
注意:現在已經有spring6了哦!
Spring Framework是Spring生態圈中最基礎的項目,是其他項目的根基
問題導入
IOC(Inversion of Control)控制反轉
使用對象時,由主動new產生對象轉換為由外部
提供對象,此過程中對象創建控制權由程序轉移到外部,此思想稱為控制反轉。通俗的講就是“將new對象的權利交給Spring,我們從Spring中獲取對象使用即可
”
Spring技術對IoC思想進行了實現
Spring提供了一個容器,稱為IOC容器
,用來充當IoC思想中的“外部”IOC容器負責對象的創建、初始化等一系列工作,被創建或被管理的對象在IoC容器中統稱為Bean
DI(Dependency Injection)依賴注入
在容器中建立bean與bean之間的依賴關系的整個過程,稱為依賴注入。
目標:充分解耦
使用IoC容器管理bean(IOC)
在IoC容器內將有依賴關系的bean進行關系綁定(DI)
最終效果
使用對象時不僅可以直接從IoC容器中獲取,并且獲取到的bean已經綁定了所有的依賴關系
問題導入
<bean>標簽中id屬性和class屬性的作用是什么?
管理什么?(Service與Dao)
如何將被管理的對象告知IOC容器?(配置文件)
被管理的對象交給IOC容器,如何獲取到IoC容器?(接口)
IOC容器得到后,如何從容器中獲取bean?(接口方法)
使用Spring導入哪些坐標?(pom.xml)
【第一步】導入Spring坐標 【第二步】定義Spring管理的類(接口) 【第三步】創建Spring配置文件,配置對應類作為Spring管理的bean對象 【第四步】初始化IOC容器(Spring核心容器/Spring容器),通過容器獲取bean對象
【第一步】導入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(); } }
<property>標簽中name屬性和ref屬性的作用是什么?
基于IOC管理bean
Service中使用new形式創建的Dao對象是否保留?(否)
Service中需要的Dao對象如何進入到Service中?(提供方法)
Service與Dao間的關系如何描述?(配置)
【第一步】刪除使用new的形式創建對象的代碼
【第二步】提供依賴對象對應的setter方法
【第三步】配置service與dao之間的關系
【第一步】刪除使用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>
讀到這里,這篇“Spring的核心基礎IOC與DI怎么掌握”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。