用動態**和cglib實現,有介面的用動態**,無介面的用cglib
(spring
充當了管理容器的角色,)為大部分框架提供模板,給常見的核心類提供初始化,並且整合三層框架
內部用hashmap實現
ioc是一種控制反轉的思想,降低了物件的耦合度,
aop是面向切面程式設計,(非侵入式程式設計),用來實現非業務性程式設計(公共功能),譬如日誌,許可權,事務等等
spring裡面的事務分為程式設計式事務和宣告式事務,一般用宣告式事務,用來控制資料操作的完整性,一致性
ioc容器管理各層的元件
使用aop配置宣告式事務
整合其它框架
ioc主要用來解決物件之間的依賴問題,把所有的bean的依賴關係通過配置檔案或者註解關聯起來,降低了耦合度,aop一般用來(操作)事務
工廠模式à每個bean的建立通過方法
單例模式à預設的每個bean的作用域都是單例
**模式à關於aop的實現是通過**,體現**模式
scope作用域有4中,常見的有單例或者多例,預設是單例
xml,因為它是最簡單最流行的資料格式
bean的管理,aop技術,ioc技術,事務等
降低物件耦合度,讓**更加清晰,提供一些常見的模版
1)bean的標記註解
@component通用註解@repository持久層註解 @service 業務層註解 @controller表現出註解
2)bean的自動裝配註解
@autowird預設是按照型別裝配,如果有多個型別需要實現,可以用qualifier來指定名稱
@resource預設是按照名稱來裝配,是jdk裡面自帶的註解,預設情況下用@autowird註解
寫過前置通知,後置通知的方法,環繞通知,事務就是典型的aop的實現
和struts2整合的時候,和hibernate整合的時候都可以用到,事務用的最多,還有個別日誌,許可權功能也可以用到
七大傳播屬性,四大隔離級別
在業務層加個事務控制, (以及各個框架中的核心類的初始化)
對資料庫執行多步操作時,其中一步出現資料異常,執行回滾
介面注入,一般用@resource@autowird
通過反射機制生成想要的物件注入到元件中
(這個是在ssh整合的時候使用),
spring核心***是整個web專案啟動的時候,用來初始化spring容器,
具體是在web.xml裡面配置的contextloaderlistener
配置檔案耦合度低,容易維護,尤其是在切面或者事務的時候,只配置一次就可以讓很多**擁有事務
spring的事務提供了統一的事務處理機制,包含了jdbc,hibernate,ibatis等事務實現,而hibernate只處理自己的是
先啟動***,因為先要初始化容器,,初始化容器了以後action才能從容器裡面獲得
宣告式事務和程式設計式事務,我們一般用宣告式事務
我們可以寫乙個hashmap,如果併發考慮的話要寫併發的map,把bean的名字放在map的key,bean的實現放在map的value
ioc用反射實現,aop用動態**實現
hibernate的事務只能手動顯示**的方式控制建立事務與提交事務以及回滾
spring可以通過配置檔案設定一類class事務的建立、提交以及回滾,也可以顯示**方式控制
七大事務傳播常用的有兩個,required, required_new
required表示兩個事務的方法呼叫的時候,前面的事務和後面的合併成乙個事務,
required_new是重啟乙個事務,各幹各的
前者用required_new,後者用required
事務併發會引起髒讀,幻讀,不可重複讀等問題,設定事務的隔離級別就可以解決問題
spring定義有四種,但是常見的是read_commit
oralce有兩種,
mysql有四種
ioc(inversion of control ) 對bean的控制能力更強,能控制物件自動注入和生命週期,而工廠類只是簡單的建立乙個物件,沒有什麼控制能力
鎖有悲觀鎖和樂觀鎖,悲觀鎖一般假設每個人都會修改資料,預設情況下把資料都鎖住,影響效能,但安全性高
樂觀鎖是假設每個人都唯讀一下資料,不會修改資料,效能較高但安全性低,一般通過增加型別於版本控制裡面的版本號來解決安全性問題
beanfactory是spring容器頂級核心介面,出現較早,但功能少
spring面試題目
目錄 一 spring mvc工作原理二 為什麼要用spring 1 spring能很好的與各大框架進行整合 2 建立物件時,如果我們不用spring需要用工廠模式來建立,這個spring相當於工廠模式已經幫我們做了建立物件的功能 ioc 依賴注入 3 在用hibernate的時候,如果不用spri...
Spring面試題分享
1.下面關於 依賴注入 的說法,錯誤的是 d a.將元件間的依賴關係採取配置檔案的方式管理,而不是硬編碼在 中 b.降低了元件間的耦合,使程式更容易維護和公升級 c.促進了 面向介面程式設計 使構建大規模程式更輕鬆 d.需要定義大量介面,增加編碼複雜度 2.關於spring說法錯誤的是 b a.sp...
Spring面試題總結
自動裝配沒有自定義裝配方式那麼精確,而且不能自動裝配簡單屬性 基本型別 字串等 在使用時應注意。在spring的早期版本中,僅有兩個作用域 singleton和prototype,前者表示bean以單例的方式存在,ioc容器建立時就建立 後者表示ioc容器建立時不建立,在每次從容器中呼叫bean時,...