鋒哥的幾個ssh圖片問題

Hibernate:spring

Hibernate的懶加載:所謂懶加載(lazy)就是延時加載,延遲加載。就是當咱們要訪問的數據量過大時,明顯用緩存不太合適,
由於內存容量有限 ,爲了減小併發量,減小系統資源的消耗。數據庫

OR Mapping 介紹:ORM(Object Relational Mapping) -- 是一種爲了解決面向對象與關係型數據庫存在的互不匹配的現象的技術。簡單說:ORM是經過使用描述對象和數據庫之間的映射的元數據,將Java程序中的對象 自動持久化到關係數據庫中。本質上就是講數據從一種形式轉換成另一種形式。編程

hibernate緩存機制:包括一級緩存(session級別)、二級緩存(sessionFactory級別)以及查詢緩存。設計模式

一級:session把查詢結果放在session緩存中,第二次查詢時,session根據OID判斷緩存中是否存在要查詢的對象,若是存在,則再也不查詢,而是將緩存數據返回。緩存

當Hibernate根據ID訪問數據對象的時候,首先從Session一級緩存中查;查不到,若是配置了二級緩存,那麼從二級緩存中查;查不到,再查詢數據庫,把結果按照ID放入到緩存。session

hibernate和ibatis和mybatis的區別:mybatis

Hibernate的真正掌握要比Mybatis來得難些。Mybatis框架相對簡單很容易上手,但也相對簡陋些;Hibernate 與Mybatis都是流行的持久層開發框架,但Hibernate開發社區相對多熱鬧些,支持的工具也多,更新也快;併發

Hibernate的查詢會將表中的全部字段查詢出來,這一點會有性能消耗。Hibernate也能夠本身寫SQL來指定須要查詢的字段,但這樣就破壞了Hibernate開發的簡潔性。而Mybatis的SQL是手動編寫的,因此能夠按需求指定查詢的字段。mvc

Hibernate功能強大,數據庫無關性好,O/R映射能力強,若是你對Hibernate至關精通,並且對Hibernate進行了適當的封裝,那麼你的項目整個持久層代碼會至關簡單,須要寫的代碼不多,開發速度很快,很是爽。app

spring:

bean的初始化:1.類構造器初始化:最經常使用的方法,也是最簡單的方法,構造器能夠不用寫能夠用默認的(它保證了Bean實例在實例化後就可使用。);2.靜態工廠初始化(瞭解);3.實例工廠初始化

AOP原理:面向切面編程,AOP是可以讓咱們在不影響原有功能的前提下,爲軟件橫向擴展功能

提到AOP你們都知道他的實現原理是動態代理,動態代理的代理類是在程序運行時建立的,能夠很方便的對代理類的函數進行統一的處理

spring IOC中四種依賴注入方式:a、接口注入;b、setter方法注入;c、構造方法注入;d、註解方法注入;setter注入模式在實際開發中有很是普遍的應用,setter方法更加直觀。

springMVC:

Spring能夠說是一個管理bean的容器,也能夠說是包括不少開源項目的總稱。

優勢:
一、分工明確(開發人員能夠只關注整個結構中的其中某一層);二、鬆耦合(能夠下降層與層之間的依賴);三、複用性高(利於各層邏輯的複用);四、有利於標準化(有利於經過工程化、工具化產生管理程序代碼);歸納來講,分層式設計能夠達至以下目的:分散關注、鬆散耦合、邏輯複用、標準定義。

缺點:
分層式結構也不可避免具備一些缺陷:

一、有時會致使級聯的修改。這種修改尤爲體如今自上而下的方向。若是在表示層中須要增長一個功能,爲保證其設計符合分層式結構,可能須要在相應的業務邏輯層和數據訪問層中都增長相應的代碼。
二、下降了系統的性能。這是不言而喻的。若是不採用分層式結構,不少業務能夠直接造訪數據庫,以此獲取相應的數據,現在卻必須經過中間層來完成。

三、因爲它沒有明確的定義,因此徹底理解MVC並非很容易。使用MVC須要精心的計劃,因爲它的內部原理比較複雜,因此須要花費一些時間去思考。

四、MVC並不適合小型甚至中等規模的應用程序,花費大量時間將MVC應用到規模並非很大的應用程序一般會得不償失。 

*如何改善:

第一個缺點,能夠採用一些設計模式來到改善。

第二個缺點,能夠經過系統的緩存機制來減少對性能的影響;

springmvc和struts的區別:spring mvc 和 struts2的加載機制不一樣:spring mvc的入口是servlet,而struts2是filter(servlet和filter區別見本文最後)

相關文章
相關標籤/搜索