記錄筆記。
一.Spring介紹
Spring是以IOC(控制反轉)和AOP(面向切面程式設計)為核心的一個輕量級開源框架。
二.Spring框架的優點
1.非侵入設計
使得應用程式對框架的依賴最小化。
2.方便解耦
物件的建立和依賴關係的維護都由Spring容器管理。
3.支援AOP
AOP就是面向切面程式設計,後面會講的。
4.支援宣告式事務管理
配置就可以完成對事務的管理。
5.方便程式的測試
6.方便繼承各種優秀框架
7.降低Java EE API的使用難度
三.Spring 的體系結構
覺得最重要的是Core Container模組。下面的解釋看看就行了,等實踐了再來看大致就會有更深的理解。
四.Spring下載及目錄結構
去下載spring框架包。開啟來看有很多jar包,最重要的是4個基礎包。
除了這四個基礎包之外,還有一個第三方依賴包common-logging。每次使用spring專案將這4個基礎包和common-logging複製到專案中即可。
五.Spring 的核心容器
兩個核心容器BeanFactory和ApplicationContext。
說到容器,就必須要講到一個東西Bean,按照我的理解,可以把Bean這個東西當成一個類(話說java的確實應該是類),容器使用的都是Bean例項,所以要將某個類(主要類)加入到容器裡面,然後再在啟動類裡面使用方法(好像是getBean)在spring容器裡面獲得該主要類的Bean例項,獲得Bean例項了才可以呼叫主要類的方法。
BeanFactory
ApplicationContext
(spring是xml檔案,不要和springboot搞混了)
如何獲得指定的Bean
實際的程式碼類似於這種:
六.Spring入門程式
這一部分我偷懶了,找了一下我自己敲的程式碼,發現我壓根沒有。
一般來講就是先建立一個介面,然後透過這個介面建立主要類,為了獲得對應的Bean例項,我們也說過spring是由spring容器來建立Bean例項的,我們需要在xml檔案裡配置Bean相關主要類。然後在啟動類就可以獲得該主要類的Bean例項了。
介面:
主要類:
在xml檔案配置主要類相關Bean:
啟動類(載入配置檔案和獲取Bean例項):
注意,這裡的目錄結構要注意。我放一個類似的目錄結構
我有一次沒有將xml檔案放resource系統資料夾裡就報錯了,在測試的時候報錯了說找不到xml檔案,如果想要知道原因的話自己試試再去查一下報錯原因(鼓勵)。然後關於這個我後面也有講。
七.依賴注入的概念
依賴注入(DI)與控制反轉其實含義是一樣的,只是角度不一樣。
八.依賴注入的方式
屬性setter方法注入,介面,實現介面的主要類(需要加入setter方法宣告某一個屬性),xml檔案配置獲得主要類相關Bean,啟動類。
下面是屬性setter方法注入的方式,setter方法宣告的屬性是UserDao,沒錯這本書上寫的就是UserDao,就是上面程式碼的UserDao。(java中觀察一些程式碼,比如List<> list = new ArrayList<>(),還有我之前觀看別人專案的原始碼,我發現形參(屬性),左邊等式都是一般用來宣告的,畢竟介面也是一個類)
介面:
主要類:
xml的配置(流程還是記住的):
(ref的值是之前的配置
)
主要類(載入配置檔案,獲得Bean例項,呼叫主要類方法,三部曲):
關於xml檔案沒有放在resource檔案(系統檔案?)的錯誤的解釋:IDEA中Spring配置錯誤:class path resource [.xml] cannot be opened because it does not exist_class path resource [feign/requestinterceptor.clas-CSDN部落格
大致意思就是如果xml放在src目錄生成.class檔案沒辦法放在target資料夾裡所以編譯器找不到。