- Adrian Colyer
CTO Interface21
Adrian Colyer CTO Interface21 - - PowerPoint PPT Presentation
Adrian Colyer CTO Interface21
CTO Interface21
dao repository
controller business service
%!&
' !" # ' !
<aop:advisor pointcut="SystemArchitecture.businessService()" advice-ref="tx-demarcation"/> </aop:config>
<method name="*" propagation="REQUIRED" isolation="DEFAULT"/> </tx:advice>
➔ ()*+,-./%,-0
#$%&#
'
'() *++ !
23' 4) ++5 2#6+75
➔
"9
% : ! "#:;<+ 0-# !#
:0-#&
=!#
0-#&=
4)!> !?=-#=: ?= >@=@ !0-#> "-#-#@A 77#!& B
;
"-#)A 77& 4)!> !?=-#=: ?= >@= @ !0-#> "-#-#@A 77#!& B B
<aop:aspectj-autoproxy/> <context:component-scan> <context:include-filter type="annotation" expression="org.aspectj.lang.annotation.Aspect"/> </context:component-scan>
)#*H: ; D
<aop:config> <aop:aspect ref="hibernateExceptionTranslator"> <aop:after-throwing throwing="hibernateEx" pointcut="SystemArchitecture.dataAccessOperation()" method="rethrowAsDataAccessException"/> </aop:aspect> </aop:config>
,- ' ,''. ,' ,'' ')'.
,- - ' ,- - .
in pcut expression
)#=#= I 7$! 4, 0#
✔ !"#
0;
0;H, &
#/-341'5675''-6')8. )/-341'5675''-6'. "#*9" 6 6 )6 .
#$% &'&'#% (()'" " *% + &''" &'#'% + + &'% +
<aop:aspect ref="deadlockLoserRetry"> <aop:pointcut id="idempotentOperation" expression= "SystemArchitecture.businessService()"/> <aop:around pointcut-ref="idempotentOperation" method="doConcurrentOperation"/> </aop:aspect> </aop:config>
class="DeadlockLoserRetry"> <property name="maxAttempts" value="2"/> </bean>
K6 /
K
%! ! L!< <! &
#:
D> #@&
expression= "SystemArchitecture.businessService() and @annotation(Idempotent)"/>
✔ !"#
"
; .
"&
*H;
D$ $D %
( # D
D
M >@
M 2#6++!75
' $+!?=NN=
!
D