【javaweb】極客之Spring
學習視訊課程,很詳細的研究了下。包括以下內容:
spring簡介,ioc和aop,java的反射,資源訪問工具類,以及bean的一些知識點普及。
-
SPRING
-
使用基本Javabean代替EJB,解決企業開發的複雜性。優點:程式碼汙染低,AOP提供通用任務的集中管理,DI降低了耦合度。
-
好處:可以有效組織中間物件,消除單例模式的壞處。使用統一的配置。促進良好的變成習慣,減少程式設計代價。易於單元測試。使EJB成為一種備選。為資料存取提供了一致的框架。
-
核心模組:spring core,spring上下文,AOP面向切面程式設計,事務管理服務;JDBC和DAO通用,ORM,WEB模組支援與strutcs的整合,MVC框架大量檢視技術
-
SPRING IOC:
-
控制反轉,由SPRING負責控制物件的生命週期和物件間的關係。
-
舉個例子,跟傳統模式的區別,以找女朋友為例,傳統是每個物件自己去找,多高的,多瘦的,然後物件的生成和銷燬都有自己來做。而SPRING類似於婚介公司,我們只要把自己的特徵,以及需要的女朋友的特徵告訴SPRING,他就會幫我們找好對應的女朋友,同時新的物件的生命週期都不由我們控制,我們也會被別人呼叫。
-
IOC理論背景:物件之間的耦合類似齒輪組的關係,互相依賴,牽一髮而動全身。IOC是一個第三方,齒輪之間的依賴關係通過IOC來實現,由IOC去控制,相當於一個粘合劑。當A需要B的時候,new B(),有了IOC後,IOC去建立B,注入到A中,返過來了所以叫控制反轉,控制權顛倒了。
-
依賴注入:和控制反轉是一回事,只不過角度不同。傳統A依賴B,現在A被IOC注入。就是引入IOC,通過依賴注入的方式,實現物件間的解耦。用電腦主機和USB裝置做例子,傳統用光碟,耦合程度太高,人相當於IOC,電腦需要USB裝置的時候,把USB插到電腦。
-
IOC的好處:
-
降低耦合性,提高了可維護性,各個CLASS互不影響測試。
-
提高開發效率和產品質量:電腦和USB廠商互不影響,只要遵守規範就行了。開發團隊之間可以不用太多的互動。
-
統一標準,提高模組的可複用性。
-
模組具有熱插拔性。
-
Spring aop
-
Aop 是oop的延續。常常用來事務處理、安全檢查、快取、物件池管理等。
-
程式設計的三部曲:1,定義普通業務元件、定義切入點、定義增強處理
-
關鍵概念:切面(日誌處理)、連線點(一般是某段程式碼,或者方法)、切入點(連結切面和連線點)、引入,目標物件、aop代理(aop建立的這個框架物件)、織入(切面和物件)
-
開發包:Spring core基礎核心、Spring beans配置檔案,依賴注入,建立bean、Spring aop,宣告事務管理,應用日誌、Spring context 最重要的。還有一些其他的:aspects、context support、expression、framework、instrument、jdbc、jms等等。
-
案例:兩個bean配置相互依賴關係,就可以使用的時候,呼叫b的方法。
-
ioc概念:控制+反轉。注入分為三種:建構函式注入、屬性注入、介面注入。傳統方法:導演注入劉建明的扮演者,使用屬性注入比較方便,建構函式注入不太方便。ioc的注入方式:通過配置檔案ref扮演者即可。
-
java的反射技術
-
通過程式化方式間接對class檔案進行呼叫。
-
傳統方式用建構函式或者set設定屬性。
-
一,通過類裝載器class loader(是一個執行元件,負責查詢和裝入class位元組碼檔案)獲取car物件,二,再獲取構造器物件,用構造器件例項化物件constructor(第一個反射類),類似於new car(),三,通過反射方法設定屬性,class.getmethod….invoke(第二個反射類)filed(第三個反射類)。
-
反射可以訪問class類的所有屬性和方法,但是訪問private和protected的時候,需要取消Java的檢查
-
beanfactory這個工廠類就是使用反射機制實現ioc
-
資源訪問工具類
-
Spring的一個rescource介面,為應用提供了強大的訪問底層資源能力。具體實現類:bytearrayresource,二進位制、檔案資源,流、類、訪問用rl訪問的資源
-
上面的方法得用具體的方法,太麻煩了,也可以用資源型別地址字首:classpath,ftp,http,file.
-
Ant的匹配符,?一個字元,**等
-
beanfactory和applicationcontext
-
前者是面向Spring本身,後者是面向開發者的
-
Bean factory
-
XmlBeanFactory,ConfigureBeanFactory等等
-
applicatiionContext由前者派生而來,提供了更多面向實際應用的功能。主要類
-
ClassPathXmlApplicationContext預設從類中載入,還有個file的,從檔案載入配置檔案
-
初始化載入就會例項化bean,而前者不會例項化,所以時間短
-
bean的生命週期
-
bf的生命週期。。。呼叫一堆方法初始化,例項化,銷燬等等
-
Spring的配置檔案淺析
-
名稱空間引入Spring的各個不同的路徑,表示不同的作用,一般用Spring官方的路徑
-
bean的命名:首先唯一,getbean可以用類名,ID,name,或者ID+name(可以用這個Id或者這個name都可以獲取到bean),或者多個name(通過其中任何一個別名都可以),指定別名alias,他的name是另外一個已經存在的bean的name.
-
id和name的區別:如果配置裡一個bean引用裡另外一個bean,如果是id的方式引用了一個不存在的bean,那麼就會直接報錯。但是name的方式,只有在程式例項化執行的時候才能發現。
-
Spring ioc中bean的例項化
-
構造器例項化bean:空構造器或者有引數contractor-arg index=0 value=6
-
不同構造器是不同的bean,然後區別有引數的多一個上面的配置
-
不同構造器例項化的方式是一樣的,只不過bean不同而已
-
使用靜態工廠方式例項化,是有引數的構造器
-
同樣是getbean,
-
例項工廠:
-
factory-bean指定工廠bean,factory-method指定例項化的方法,方式和構造器是一樣的,可以無引數,有引數
-
這種方式有兩個bean,一個例項工廠bean,一個是使用例項工廠bean建立的bean,通過上面兩個配置連結到第一個bean
-
最終個getbean是get到第二個bean即可,呼叫跟其他都一樣
-
Spring bean的作用域
-
Singleton單例,是一個預設的,並且只會例項化一次,只有一個。大部分的都是這個。Spring啟動時Spring applicationcontext容器會把所有的這個bean例項化放在快取中,提前發現問題,加快執行速度。如果多個bean依賴同一個單例bean,那麼是同一個bean
-
prototype:每次getbean都是一個new bean(),與1不同
-
request,僅在http request作用域
-
session,僅在http session中作用域
-
global session:全域性生命週期
-
自定義作用域:自定義實現scope類,一般不要覆蓋singleton和prototype的;註冊自定義scope類,最後再使用
-
多個配置檔案組合:多個xml,建立一個單獨整合的配置檔案import這多個,整合後只要載入這一個就行了
相關推薦
【javaweb】極客之Spring
學習視訊課程,很詳細的研究了下。包括以下內容: spring簡介,ioc和aop,java的反射,資源訪問工具類,以及bean的一些知識點普及。 SPRING 使用基本Javabean代替EJB,解決企業開發的複雜性。優點:程式碼汙染低,AOP提供通用任務的集
【javaweb】極客之springmvc
HIN重要的SPRINGMVC來啦,這個課程注重理論,同時又沒那麼囉嗦,重點都列出來了,很多店都比較使用,知道了自己用了很久的框架的來龍去脈,同時又有一個體系,值得一看。 Spring mvc M表示模型,資料邏輯。v表示檢視,顯示資料。c控制器,處理使用者輸入。
【javaWeb】第63天——Spring框架的第4天
Spring框架的第四天 課程回顧:Spring框架第三天 1. AOP註解方式 * 編寫切面類(包含通知和切入點) * 開啟自動代理 2. JDBC模板技術 * Spring提供模板技術,資料庫的操作 * 以後編寫DAO層,都可以繼承JdbcDaoSupport類(
【javaWeb】第63天——Spring框架的第3天
Spring框架的第三天 課程回顧:Spring框架第二天 1. IOC的註解方式 * @Value * @Resource(name="") 2. 整合JUnti單元測試 * 先有Junit4執行環境 * 匯入spring-test.jar包 3. Spring的
【javaWeb】第63天——Spring框架的第2天
Spring框架第二天 課程回顧:Spring框架第一天 1. 概述 * IOC和AOP 2. 框架的IOC的入門 * 建立applicationContext.xml,引入約束,<bean/> * 配置檔案<bean id="" class="" n
【javaWeb】第63天——Spring框架的第1天
今天課程:Spring框架第一天 Spring框架的學習路線 1. Spring第一天:Spring的IOC容器之XML的方式,Spring框架與Web專案整合 2. Spring第二天:Spring的IOC容器之註解的方式,Spring的AOP技術 3. Spring第三天:
【JavaWeb】MVC案例之新聞列表
MVC案例之新聞列表 作者:白寧超 2016年6月6日15:26:30 摘要:本文主要針對javaweb基本開發之MVC案例的簡單操作,裡面涉及mysql資料庫及表的建立,以及jsp頁面和servlet的操作,整個操作流程進行梳理。其中涉及的概念問題,不在一一詳述。對於整個操作流程按照開發順序建立。
【javaweb】JQ實現簡單的註冊頁面資料校驗(究極版)
需求:前面寫了一個簡單的表單檢驗,需要使用者提交資訊後才會對錶單資訊進行檢驗,下面我們增加對使用者的提供友好提示,即輸入時就為表單資訊進行檢驗,並提供提示資訊。 步驟分析:1. 匯入JQ的檔案 &n
【技術思路】極客時間-左耳聽風-開篇詞1
開篇詞 | 洞悉技術的本質,享受科技的樂趣 01 | 程式設計師如何用技術變現(上) 獨立:沒有必要通過打工聽人安排而活著,而是反過來通過在公司工作提高自己的技能,讓自己可以更為獨立和自由地生活。 思考:留出更多的時間,去研究公司裡外那些更為核心更有技術含量的技術。 02 | 程式設計師如
【技術思路】極客時間-左耳聽風-開篇詞2
07 | 推薦閱讀:每個程式設計師都該知道的知識 每個程式設計師都應該要讀的書 https://stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read
【java面試】框架篇之Spring
1.你如何理解Spring?具體來說Spring是一個輕量級的容器,用於管理業務相關物件的。核心功能主要為:IOC,AOP,MVC。IOD:控制反轉,將物件的建立過程交給容器,讓容器管理物件的生命週期如
【JavaWeb】Spring無法@Autowired注入
在用Spring依賴注入時發現@Autowired無法注入,程式碼如下: @Autowired private static MyBean1 bean1 ; public
【BZOJ3689】異或之 堆+可持久化Trie樹
ace iostream 持久化 sof stream tro urn org cst 【BZOJ3689】異或之 Description 給定n個非負整數A[1], A[2], ……, A[n]。對於每對(i, j)滿足1 <=
【16】vuex2.0 之 getter
this map 多個參數 name not 同時 方便 比較 compute 有的組件中獲取到 store 中的state, 需要對進行加工才能使用,computed 屬性中就需要寫操作函數,如果有多個組件中都需要進行這個操作,那麽在各個組件中都寫相同的函數,那就非常
【15】vuex2.0 之 modules
his 來看 暴露 方式 ets 我們 spa web space vue 使用的是單一狀態樹對整個應用的狀態進行管理,也就是說,應用中的所有狀態都放到store中,如果是一個大型應用,狀態非常多, store 就會非常龐大,不太好管理。這時vuex 提供了另外一種方式
【轉】理解Callable 和 Spring DeferredResult
控制 defer -a word int https .html getc when http://www.cnblogs.com/aheizi/p/5659030.html 1-介紹 Servlet 3中的異步支持為在另一個線程中處理HTTP請求提供了可能性。當
【轉載】博客園背景音樂調用,讓音樂為你的博文加點料
mode com single data 一半 網易 支持 span 什麽 【轉載】博客園背景音樂調用,讓音樂為你的博文加點料 單調的文字怎麽行,讓音樂為你的博文加點料。什麽?你寫的是技術型博客不搞這麽多文藝,大叔,技術
【0002】設計模式之原則
範圍 class 變化 chan reason 一件事 ever 模式 單一職責原則 【1】單一職責原則: 要求一個接口或者類只有一個原因引起變化; 也就是一個接口或者類只有一個職責,它負責一件事情; There should never be more
【比賽】百度之星2017 初賽Round A
初賽 題意 bsp 多少 5% 答案 數字 nbsp 計算 第一題 題意:給定多組數據P,每次詢問P進制下,有多少數字B滿足條件:只要數位之和是B的倍數,該數字就是B的倍數。 題解:此題是參考10進制下3和9倍數的特殊性質。 對於10進制,ab=10*a+b=9*a+(a+
【精】C語言之變量存儲類型
art 技術分享 .net ont alt enter fill img 分享 【精】C語言之變量存儲類型