公司使用的是
ssh框架,用**生成工具生成從
dao到
service
的所有**和配置檔案,使用
spring
框架對hibernate
進行事務管理,
struts
自己管理自己的元件,
spring
管理從service到vo
物件的元件,在
struts
的action
通過來獲取
spring
管理的bean
物件,事務管理在
service
層進行,通過定義乙個抽象的事務模板讓
service
物件繼承來實現,同時,將
hibernate
的session
繫結到web
的每個request
執行緒中,整個
request
的生命週期中都可見,需要注意的是此處
hibernate
的session
預設使用的是
flushnever
模式,即該
session
永遠不會執行
flush
,具體的事務控制都在
service
層進行,在
service
層呼叫的時候該
session
會被臨時設定成自動
flush
模式,呼叫完後又會被設定成
neverflush
模式。
具體內容如下:
一,
struts配置
struts
配置和一般的配置沒有多少區別,不同的是為了實現按模組配置
struts
將配置檔案拆分成幾個配置檔案,因此,在配置
actionservlet
時為他配置了乙個初始化引數
configlocation
,如下
action
config
/web-inf/config/struts/struts-config.xml
configlocation
/web-inf/config/struts
2 /web-inf/config/struts
目錄下面放置的是被按模組拆分後的多個
struts
配置檔案,為了能保證這些配置檔案能被
struts
的actionservlet
讀到,需要將他們追加到
actionservlet
的config
,**如下
protectedvoidinitother()throwsservletexception }
上面這段**的作用就是將在
configlocation
項中配置的目錄下的
struts
配置檔案的路徑追加到
config
,讓actionservlet
能夠根據這些配置檔案進行初始化。
由於該框架並沒有將
struts
的action
物件納入到
spring
的管理中,因此需要在
web。
xml中配置
spring
的webcontextlisteners
上下文***,並且需要在
webcontext
中配置spring
配置檔案路徑。具體配置如下:
配置上下文***
在struts
的action
中取得spring
的context
物件的**
配置spring
配置檔案路徑
contextconfiglocation
具體可參考
spring
手冊整合其他框架
-通用配置
15.2
spring
中hibernate
的配置
此處都是通用配置,看
spring
文件即可
spring
中抽象事務模板的配置
<
beanid=
"txproxytemplate"
abstract
="true"
class
="org.springframework.transaction.interceptor.transactionproxyfactorybean"
>
<
property
name
="transactionmanager"
ref="transactionmanager"
/>
<
property
name
="transactionattributes"
>
<
props
>
<
prop
key=
"query*"
>
propagation_supports,readonly
prop
>
<
prop
key=
"*" >
propagation_required
prop
>
props
>
property
>
bean
>
使用模板
<
beanid=
"sysloglogininfoservice"
parent
="txproxytemplate"
>
<
property
name
="target"
>
<
bean
class
="com.thunisoft.core.service.log.impl.sysloglogininfoserviceimpl"
autowire
="byname"
/>
property
>
bean
>
<
filter
>
<
filter-name
>
hibernatefilter
filter-name
>
<
filter-class
>
org .springframework .orm .hibernate3.support.opensessioninviewfilter
filter-class
>
filter
>
這裡需要補充一下,
jdk本身有自己的記憶體整理機制,使得一些不再被使用的記憶體物件整理能自動有效的進行,但是在
web環境下,有些物件會被註冊為上下文中的物件,這就導致即使這些物件不被使用了也不能被有效的清理,使用
introspectorcleanuplistener
的話能有效保證這樣物件也能被清理掉,從而提高能存的使用效率,具體配置如下:
<
listener
>
<
listener-class
>
org .springframework .web.util .introspectorcleanuplistener
listener-class
>
listener
>
attention的一種實現方式記錄
思想是當前資訊ht與前文多個資訊hs進行比對計算,得到對各個前文資訊hs應該有多少關注度,即at 利用at加權相應的hs,並累加所有加權後的前文資訊,得到綜合前文資訊ct,將其與當前資訊ht進行拼接組合進行 上述流程計算方式如下 這裡的注意力其實可以認為指的是at,因此需要關注at如何計算 上述公式...
OC Singleton的一種簡便實現方式
static dispatch queue t xml request operation processing queue return af xml request operation processing queue 通過dispatch once執行一次來保證af xml request o...
只有一種實現多執行緒的方式 ?
執行緒是實現多執行緒的基礎,本篇主要講解關於執行緒的兩個問題。1 為什麼說本質上只有一種實現多執行緒的方式?2 實現runnable的方式和繼承thread的方式哪種好?好在 為什麼說本質上只有一種實現多執行緒的方式?1 實現runnable介面的方式class runnableimpl runna...