ejb
乙個最大的缺點就是要想脫離
ejb容器而單獨測試
ejb元件非常困難。通過
spring
可以解決這個問題,將業務邏輯寫在
pojo
中,然後,通過
ejb委託給
pojo
來執行操作。在
spring
中,由於不必將如何定位和建立
pojo
的實現的任何邏輯嵌入到
ejb中,這種實現就是非常簡單,和靈活的。下面是乙個繼承於
abstractstatelesssessionbean
的無狀態會話
bean
的基類,系統中的每個
slsb
都繼承於此類。所有的請求都通過這個
slsb
來**給
pojo
。因為每次初始化的內容都不一樣,所以將初始化放到了
slsb
的每個繼承類中。
public abstract class sessionfacade extends abstractstatelesssessionbean
}slsb
的繼承類
如上面的**所示,由於在
slsb
的初始化方法
setsessioncontext
中例項化
spring
的 ,spring
的配置檔案在類路徑中的
beanrefcontext.xml
檔案標識,所以在
slsb
的繼承類中,呼叫
getbeanfactory
方法可以得到
spring
的 ,並賦予給
contextservicelocator
,方便以後的呼叫。
無狀態會話
bean
是用 spring
最容易構建的
ejb;這是因為無論在何種情況下,它都不需要特殊的處理,並且類
abstractstatelesssessionbean
實現了所有
ejb***()
方法。
因為真正的業務邏輯是寫在
pojo
中的,slsb
的作用相當於
sessionfacade
模式中的
façade
,在 delegate
模式中的
delegate
的請求都是通過
façade
傳到了後面的
processor
,所以在系統中只需要乙個或者是少量的幾個
slsb
就可以滿足需求。甚至可以繞過
slsb
通過 pojodelegate
訪問後面的
processor
,這給平時的開發帶來的極大的靈活性。
對於非同步的訊息驅動
bean
( mdb
), spring
同樣作出了支援。類似
slsb
, mdb
只要繼承
abstractmessagedrivenbean
,並實現
messagelistener
介面即可。同樣在
setmessagedrivencontext
方法中初始化
spring
的 ,所有從
delegate
的請求都通過
execute
方法傳給
processor
。在 mdb
繼承類中的
onmessage
方法就可以訪問到
spring
的 了。在此就不再羅嗦了。
spring對rest的支援
隨著spring的發展壯大,springmvc逐漸代替struts2,springmvc相對於struts2有哪些明顯優勢那,我大概淺 下。最大的有事應該是rest。springmvc的每個controller中每乙個method都可以定位到每種請求方式。即 get post put delete ...
spring對JDBC的支援
spring提供了對dao層統一異常的處理 spring提供了一些抽象類來支援對dao的編寫 減少了對jdbc編寫的 量 spring用一種方式使用各種資料訪問技術 如 hibernate jdbc mybatis等 需要相關jar包 spring core 3.2.8.release.jar sp...
spring對AOP的支援
spring對aop的支援 如果目標類實現了介面,預設採用jdk動態 來實現aop 如果目標類沒有實現介面,必須新增cglib支援,spring會自動的在jdk和cglib 之間切換 如果目標類實現了介面,可以定義讓spring強制使用cglib 如何強制使用cglib 實現aop 將定義為,並且要...