Java高級部分-Spring框架的學習

2020.6.19 17:11

Spring介紹

Spring是一個一站式的框架,僅僅使用一個Spring框架就能完成項目的開發。
原因:Spring框架性質是屬於容器性質的。容器中裝什麼對象就有什麼功能,所以可以一站式開發。

三層架構中Spring的位置:
Spring在項目中的位置
Spring的核心:IOC【控制反轉】和 AOP【面向切面編程】

Spring中有:AOP支持、IOC思想、Spring JDBC、AOP事務、JUnit測試支持。

Spring搭建

新建一個動態Web項目。
在這裏插入圖片描述
在這裏插入圖片描述

  1. 導包。主要有Beans、Core、Context、SpEL
    在這裏插入圖片描述
    在lib中導入如下jar包。
    在這裏插入圖片描述
  2. 創建一個對象,例如:User。
    在這裏插入圖片描述
    新建一個User類
    在這裏插入圖片描述
  3. 書寫xml配置,註冊對象到容器中。
    在這裏插入圖片描述
  4. 導入外部的dtd文件。如:spring-beans-4.2.xsd。

導入dtd文件

  • 在Window–Preferences中,搜索catalog找到xml中的XML Catalog,然後新建Add在這裏插入圖片描述

  • 將spring-beans-4.2.xsd放在key後面,在key type中選擇Schema location。OK即可。
    在這裏插入圖片描述

  • 導入約束。先在xml文件中寫一個<beans></beans>。然後切換到Design設計模式。如下圖示。右鍵彈出。在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述
    在這裏插入圖片描述
    最後結果如下圖所示:
    在這裏插入圖片描述

  1. 代碼測試。 在src下新建一個專門用於測試的包,並在下面新建一個測試類TestDemo。實際操作代碼如下。
    在這裏插入圖片描述

Spring中的IOC和AOP概念

  1. IOC思想:【反轉控制】----反轉了對象的創建方式,從我們自己創建反轉給了程序Spring。【將對象的創建權力交給了Spring】。以前對象是由我們開發人員來自己維護,包括依賴都是自己注入。使用了Spring之後,對象的創建和依賴關係都可由Spring來完成創建和注入。
  • DI:(Dependeney Injection)依賴注入。
  • 注入方式有:
    1、Set方法注入
    2、構造方法注入
    3、字段注入
  • 注入類型有:
    1、 值類型注入
    2、 引用類型注入
  1. BeanFactoryApplicationContext
  • BeanFactory:已過時的接口,Spring最原始的接口。針對原始接口的實現類,功能單一。
    特點:每次在獲得對象時,纔會去創建對象。

  • ApplicationContext:每次容器啓動時,就會去創建容器中配置的所有對象。提供很多的功能。
    1、從類路徑下加載配置文件:ClassPathXmlApplicationContext
    2、從硬盤中絕對路徑下加載配置:FileSystemXmlApplication(“D://xxx//…”);

Spring中Bean的配置詳解

applicationContext.xml 裏:

Bean元素:使用該元素描述需要Spring容器管理的對象。

  • name屬性。【給被管理的對象起個名字,獲得對象時根據該名獲得對象,可重複,可用特殊字符】
  • class屬性。【被管理對象的完整類名】
  • id屬性。【與name一樣,名稱不可重複,不能使用特殊字符】
  • 結論:儘量使用name屬性。
<bean id="User" name="可用/User或Use-r等" class="com.HoQis.beans.User"></bean>

三種創建對象的方式

  1. 空參構造方法。【重點掌握】
<bean name="user1" class="com.HoQis.beans.User"></bean>
  1. 靜態工廠。【瞭解】
<bean name="user2" class="com.HoQis.beanFactory.UserFactory" factory-method="createUser"></bean>
  1. 實例工廠。【瞭解】在這裏插入圖片描述
    Spring配置中的Scope屬性

    1、singleton (默認值)單例對象:被表示爲單例的實例對象,在Spring容器中只會存在一個。

    <bean name="user1" class="com.HoQis.beans.User" scope="singleton"></bean>
    

    2、prototype 多例原型。被標識爲多例的實例對象,在Spring容器中,每次在獲得纔會創建,並且每一次都是創建新對象。

    <bean name="user1" class="com.HoQis.beans.User" scope="prototype"></bean>
    

    還有這兩個屬性,分別爲:session和request,不常用。

導入其他Spring的配置文件

<import resource="xxx.xml(文件路徑)">

Spring屬性注入方式:

  1. Set方法注入【特別重要】
  2. 構造方法注入【較重要】
  3. p名稱注入
  4. spEL注入

需在User和Car類中添加toString()方法在這裏插入圖片描述

	<!-- Set方法注入 -->
	<bean name="User" class="com.HoQis.beans.User">
		<property name="name" value="Tom"></property><!-- 值注入,爲User對象中的name屬性注入值爲Tom -->
		<property name="age" value="18"></property><!-- 值注入,爲User對象中的age屬性注入值爲18-->
		<property name="car" ref="car"></property><!-- ref引用類型注入,爲car屬性注入下方配置的Car對象 -->
	</bean>
	<bean name="car" class="com.HoQis.beans.Car">
		<property name="car" value="法拉利"></property>
		<property name="color" value="黃色"></property>
	</bean>

在這裏插入圖片描述

總結:

在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述
2020.6.20 0:05

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章