Spring對EJB的支援

2021-08-29 08:16:47 字數 1902 閱讀 1803

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 將定義為,並且要...