1. 程式人生 > >【javaweb】極客之Spring

【javaweb】極客之Spring

學習視訊課程,很詳細的研究了下。包括以下內容:

spring簡介,ioc和aop,java的反射,資源訪問工具類,以及bean的一些知識點普及。

  • SPRING

  1. 使用基本Javabean代替EJB,解決企業開發的複雜性。優點:程式碼汙染低,AOP提供通用任務的集中管理,DI降低了耦合度。

  2. 好處:可以有效組織中間物件,消除單例模式的壞處。使用統一的配置。促進良好的變成習慣,減少程式設計代價。易於單元測試。使EJB成為一種備選。為資料存取提供了一致的框架。

  3. 核心模組:spring core,spring上下文,AOP面向切面程式設計,事務管理服務;JDBC和DAO通用,ORM,WEB模組支援與strutcs的整合,MVC框架大量檢視技術

  4. SPRING IOC:

  1. 控制反轉,由SPRING負責控制物件的生命週期和物件間的關係。

  2. 舉個例子,跟傳統模式的區別,以找女朋友為例,傳統是每個物件自己去找,多高的,多瘦的,然後物件的生成和銷燬都有自己來做。而SPRING類似於婚介公司,我們只要把自己的特徵,以及需要的女朋友的特徵告訴SPRING,他就會幫我們找好對應的女朋友,同時新的物件的生命週期都不由我們控制,我們也會被別人呼叫。

  3. IOC理論背景:物件之間的耦合類似齒輪組的關係,互相依賴,牽一髮而動全身。IOC是一個第三方,齒輪之間的依賴關係通過IOC來實現,由IOC去控制,相當於一個粘合劑。當A需要B的時候,new B(),有了IOC後,IOC去建立B,注入到A中,返過來了所以叫控制反轉,控制權顛倒了。

  4. 依賴注入:和控制反轉是一回事,只不過角度不同。傳統A依賴B,現在A被IOC注入。就是引入IOC,通過依賴注入的方式,實現物件間的解耦。用電腦主機和USB裝置做例子,傳統用光碟,耦合程度太高,人相當於IOC,電腦需要USB裝置的時候,把USB插到電腦。

  5. IOC的好處:

  1. 降低耦合性,提高了可維護性,各個CLASS互不影響測試。

  2. 提高開發效率和產品質量:電腦和USB廠商互不影響,只要遵守規範就行了。開發團隊之間可以不用太多的互動。

  3. 統一標準,提高模組的可複用性。

  4. 模組具有熱插拔性。

  • Spring aop

  1. Aop  是oop的延續。常常用來事務處理、安全檢查、快取、物件池管理等。

  2. 程式設計的三部曲:1,定義普通業務元件、定義切入點、定義增強處理

  3. 關鍵概念:切面(日誌處理)、連線點(一般是某段程式碼,或者方法)、切入點(連結切面和連線點)、引入,目標物件、aop代理(aop建立的這個框架物件)、織入(切面和物件)

  4. 開發包:Spring core基礎核心、Spring beans配置檔案,依賴注入,建立bean、Spring aop,宣告事務管理,應用日誌、Spring context 最重要的。還有一些其他的:aspects、context support、expression、framework、instrument、jdbc、jms等等。

  5. 案例:兩個bean配置相互依賴關係,就可以使用的時候,呼叫b的方法。

  6. ioc概念:控制+反轉。注入分為三種:建構函式注入、屬性注入、介面注入。傳統方法:導演注入劉建明的扮演者,使用屬性注入比較方便,建構函式注入不太方便。ioc的注入方式:通過配置檔案ref扮演者即可。

  • java的反射技術

  1. 通過程式化方式間接對class檔案進行呼叫。

  2. 傳統方式用建構函式或者set設定屬性。

  3. 一,通過類裝載器class loader(是一個執行元件,負責查詢和裝入class位元組碼檔案)獲取car物件,二,再獲取構造器物件,用構造器件例項化物件constructor(第一個反射類),類似於new car(),三,通過反射方法設定屬性,class.getmethod….invoke(第二個反射類)filed(第三個反射類)。

  4. 反射可以訪問class類的所有屬性和方法,但是訪問private和protected的時候,需要取消Java的檢查

  5. beanfactory這個工廠類就是使用反射機制實現ioc

  • 資源訪問工具類

  1. Spring的一個rescource介面,為應用提供了強大的訪問底層資源能力。具體實現類:bytearrayresource,二進位制、檔案資源,流、類、訪問用rl訪問的資源

  2. 上面的方法得用具體的方法,太麻煩了,也可以用資源型別地址字首:classpath,ftp,http,file.

  3. Ant的匹配符,?一個字元,**等

  • beanfactory和applicationcontext

  1. 前者是面向Spring本身,後者是面向開發者的

  2. Bean factory

  1. XmlBeanFactory,ConfigureBeanFactory等等

  • applicatiionContext由前者派生而來,提供了更多面向實際應用的功能。主要類

  1. ClassPathXmlApplicationContext預設從類中載入,還有個file的,從檔案載入配置檔案

  2. 初始化載入就會例項化bean,而前者不會例項化,所以時間短

  • bean的生命週期

  1. bf的生命週期。。。呼叫一堆方法初始化,例項化,銷燬等等

  • Spring的配置檔案淺析

  1. 名稱空間引入Spring的各個不同的路徑,表示不同的作用,一般用Spring官方的路徑

  2. bean的命名:首先唯一,getbean可以用類名,ID,name,或者ID+name(可以用這個Id或者這個name都可以獲取到bean),或者多個name(通過其中任何一個別名都可以),指定別名alias,他的name是另外一個已經存在的bean的name.

  3. id和name的區別:如果配置裡一個bean引用裡另外一個bean,如果是id的方式引用了一個不存在的bean,那麼就會直接報錯。但是name的方式,只有在程式例項化執行的時候才能發現。

  4. Spring ioc中bean的例項化

  1. 構造器例項化bean:空構造器或者有引數contractor-arg index=0 value=6

  1. 不同構造器是不同的bean,然後區別有引數的多一個上面的配置

  2. 不同構造器例項化的方式是一樣的,只不過bean不同而已

  • 使用靜態工廠方式例項化,是有引數的構造器

  1. 同樣是getbean,

  • 例項工廠:

  1. factory-bean指定工廠bean,factory-method指定例項化的方法,方式和構造器是一樣的,可以無引數,有引數

  2. 這種方式有兩個bean,一個例項工廠bean,一個是使用例項工廠bean建立的bean,通過上面兩個配置連結到第一個bean

  3. 最終個getbean是get到第二個bean即可,呼叫跟其他都一樣

  • Spring bean的作用域

  1. Singleton單例,是一個預設的,並且只會例項化一次,只有一個。大部分的都是這個。Spring啟動時Spring applicationcontext容器會把所有的這個bean例項化放在快取中,提前發現問題,加快執行速度。如果多個bean依賴同一個單例bean,那麼是同一個bean

  2. prototype:每次getbean都是一個new bean(),與1不同

  3. request,僅在http request作用域

  4. session,僅在http session中作用域

  5. global session:全域性生命週期

  6. 自定義作用域:自定義實現scope類,一般不要覆蓋singleton和prototype的;註冊自定義scope類,最後再使用

  7. 多個配置檔案組合:多個xml,建立一個單獨整合的配置檔案import這多個,整合後只要載入這一個就行了

相關推薦

javawebSpring

學習視訊課程,很詳細的研究了下。包括以下內容: spring簡介,ioc和aop,java的反射,資源訪問工具類,以及bean的一些知識點普及。 SPRING 使用基本Javabean代替EJB,解決企業開發的複雜性。優點:程式碼汙染低,AOP提供通用任務的集

javawebspringmvc

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第三天:

JavaWebMVC案例新聞列表

MVC案例之新聞列表 作者:白寧超 2016年6月6日15:26:30 摘要:本文主要針對javaweb基本開發之MVC案例的簡單操作,裡面涉及mysql資料庫及表的建立,以及jsp頁面和servlet的操作,整個操作流程進行梳理。其中涉及的概念問題,不在一一詳述。對於整個操作流程按照開發順序建立。

javawebJQ實現簡單的註冊頁面資料校驗(究版)

需求:前面寫了一個簡單的表單檢驗,需要使用者提交資訊後才會對錶單資訊進行檢驗,下面我們增加對使用者的提供友好提示,即輸入時就為表單資訊進行檢驗,並提供提示資訊。 步驟分析: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:控制反轉,將物件的建立過程交給容器,讓容器管理物件的生命週期如

JavaWebSpring無法@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 <=

16vuex2.0 getter

this map 多個參數 name not 同時 方便 比較 compute  有的組件中獲取到 store 中的state, 需要對進行加工才能使用,computed 屬性中就需要寫操作函數,如果有多個組件中都需要進行這個操作,那麽在各個組件中都寫相同的函數,那就非常

15vuex2.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語言之變量存儲類型