關於spring + ejb進行組合的一些疑問
關於spring + ejb進行組合的一些疑問
最近一個專案需要將spring與EJB結合,這種行為在一些人的眼裡看來是不夠地道的做法,不過我目前的確是需要spring這樣一種支援。先講講我的理解吧。
要對stateless session bean進行很好的封裝,在建立這個session bena的時候就不是以往繼承SessionBean,而是必須繼承AbstractEnterpriseBean,並實現onCreate方法,為什麼要繼承這個bean呢?
透過檢視原始碼我們可以得知,該abstract類主要做了一件事情,就是是載入ear-jar.xml中的環境變數引數:
<env-entry>
<env-entry-name>ejb/BeanFactoryPath</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>myComponent-ejb-beans.xml</env-entry-value>
</env-entry>
這個引數是一個jndi的設定,告訴客戶端的spring framework,必須載入myComponent-ejb-beans.xml這樣的一個xml配置檔案來生產我們所需要的bean例項。
從而我們可以得出這樣一個結論:spring framework所需要的ApplicationContext配置資訊是放在將要釋出到應用伺服器上的EJB元件描述符中的。這是不是spring所謂的侵入性呢?我不知道,希望spring高手能給我答案^_^。從這裡我似乎得出了一個答案,spring 在解除業務邏輯層與表現層之間的耦合,對外儘可能封裝複雜實現的時候,在漸漸的加強了spring framework與ejb之間的耦合性,比如實現spring封裝的抽象類,在部署描述符中附帶配置資訊。我不知道這個是不是可以避免呢?
這樣做還有一個不好的地方就是,如果某人要用這個EJB元件,並且中間使用spring作為控制層。就必須做一個該EJB部署描述符中指定的檔案路徑名,比如上面的myComponent-ejb-beans.xml,否則沒法用。同時也強制部署描述符必須帶有一個環境變數來指明客戶端bean factory的application context配置檔案路徑,由此我們可以看出spring在與ejb結合的時候不僅是在充當控制層的角色,而是在強制ejb必須按照他的要求來做某些事情。這裡表現出來的就是兩點,一個是繼承spring提供的抽象類,另一個就是在部署描述符中設定spring控制層的bean factory配置檔案路徑名。
最近一個專案需要將spring與EJB結合,這種行為在一些人的眼裡看來是不夠地道的做法,不過我目前的確是需要spring這樣一種支援。先講講我的理解吧。
要對stateless session bean進行很好的封裝,在建立這個session bena的時候就不是以往繼承SessionBean,而是必須繼承AbstractEnterpriseBean,並實現onCreate方法,為什麼要繼承這個bean呢?
透過檢視原始碼我們可以得知,該abstract類主要做了一件事情,就是是載入ear-jar.xml中的環境變數引數:
<env-entry>
<env-entry-name>ejb/BeanFactoryPath</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>myComponent-ejb-beans.xml</env-entry-value>
</env-entry>
這個引數是一個jndi的設定,告訴客戶端的spring framework,必須載入myComponent-ejb-beans.xml這樣的一個xml配置檔案來生產我們所需要的bean例項。
從而我們可以得出這樣一個結論:spring framework所需要的ApplicationContext配置資訊是放在將要釋出到應用伺服器上的EJB元件描述符中的。這是不是spring所謂的侵入性呢?我不知道,希望spring高手能給我答案^_^。從這裡我似乎得出了一個答案,spring 在解除業務邏輯層與表現層之間的耦合,對外儘可能封裝複雜實現的時候,在漸漸的加強了spring framework與ejb之間的耦合性,比如實現spring封裝的抽象類,在部署描述符中附帶配置資訊。我不知道這個是不是可以避免呢?
這樣做還有一個不好的地方就是,如果某人要用這個EJB元件,並且中間使用spring作為控制層。就必須做一個該EJB部署描述符中指定的檔案路徑名,比如上面的myComponent-ejb-beans.xml,否則沒法用。同時也強制部署描述符必須帶有一個環境變數來指明客戶端bean factory的application context配置檔案路徑,由此我們可以看出spring在與ejb結合的時候不僅是在充當控制層的角色,而是在強制ejb必須按照他的要求來做某些事情。這裡表現出來的就是兩點,一個是繼承spring提供的抽象類,另一個就是在部署描述符中設定spring控制層的bean factory配置檔案路徑名。
相關文章
- 關於Multiple Buffer Pools的一些疑問
- 求教精通ejb規範的高手,關於Dependent Value Classes的疑問
- jmock 進行單元測試的一些疑問Mock
- 關於String內的indexOf方法的一些疑問Index
- 關於多執行緒協作的疑問執行緒
- 關於DDD學習過程中的一些疑問
- 關於TargetServiceFactoryVisitable的疑問
- 關於 dingo API 的疑問GoAPI
- 關於jdonframework框架的小疑問Framework框架
- 關於設計模式的疑問設計模式
- 關於組合模式的疑惑模式
- 關於字典和陣列的疑問陣列
- 關於非同步介面呼叫的疑問?非同步
- 關於no-wait latch 的疑問AI
- 關於論壇快取的疑問快取
- 關於JTA實現的疑問
- 關於使用ThreadLocal管理資料庫連線的一些疑問thread資料庫
- 關於EJB的ejbLoad方法以及j2ee伺服器效能最佳化疑問伺服器
- 關於EJB的學習曲線的問題
- 請教關於spring 兩種組合載入方式的使用?Spring
- 關於原型模式的看法和疑問原型模式
- 關於執行緒使用中的幾個疑問,請教大家!執行緒
- 關於EJB本地介面的使用一問?
- MySQL關於資料字典的一個疑問MySql
- 有幾點關於C語言的疑問C語言
- 關於Proxy和Decorator設計模式的疑問設計模式
- QI4J中關於entity的疑問
- [20201207]關於ORACLE IMU的一些疑問.txtOracle
- 關於並行建立索引設定引數sort_area_size的疑問。並行索引
- 關於servlet多執行緒序的疑問,請各位仁兄作答,謝謝。Servlet執行緒
- 對技術的一些疑問
- 檔案操作的一些疑問
- Exce使用VBA對多於4列的資料進行組合排序排序
- 關於JDONJIVE中DbFilterManager中程式碼的疑問Filter
- 關於租用香港伺服器疑問解答伺服器
- 關於租用香港伺服器疑問解答。伺服器
- 關於租用香港伺服器疑問解答?伺服器
- 請教一個關於EJB建立物件時的問題物件