锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲a视频在线观看,亚洲Aⅴ在线无码播放毛片一线天,亚洲av无码成人精品国产http://www.tkk7.com/RoyPayne/category/50539.html錛嶆暡鍑繪濇兂鐨勯敭鐩橈紝婊戝姩鐏墊劅鐨勯紶鏍囥?/description>zh-cnMon, 30 Jan 2012 17:30:50 GMTMon, 30 Jan 2012 17:30:50 GMT60Hibernate n+1闂http://www.tkk7.com/RoyPayne/archive/2012/01/30/369017.htmlRoyPayneRoyPayneMon, 30 Jan 2012 06:20:00 GMThttp://www.tkk7.com/RoyPayne/archive/2012/01/30/369017.htmlhttp://www.tkk7.com/RoyPayne/comments/369017.htmlhttp://www.tkk7.com/RoyPayne/archive/2012/01/30/369017.html#Feedback0http://www.tkk7.com/RoyPayne/comments/commentRss/369017.htmlhttp://www.tkk7.com/RoyPayne/services/trackbacks/369017.html

鍦⊿ession鐨勭紦瀛樹腑瀛樻斁鐨勬槸鐩鎬簰鍏寵仈鐨勫璞″浘銆傞粯璁ゆ儏鍐典笅錛屽綋Hibernate浠庢暟鎹簱涓姞杞紺ustomer瀵硅薄鏃訛紝浼氬悓鏃跺姞杞芥墍鏈夊叧鑱旂殑 Order瀵硅薄銆備互Customer鍜孫rder綾諱負渚嬶紝鍋囧畾ORDERS琛ㄧ殑CUSTOMER_ID澶栭敭鍏佽涓簄ull

浠ヤ笅Session鐨刦ind()鏂規硶鐢ㄤ簬鍒版暟鎹簱涓绱㈡墍鏈夌殑Customer瀵硅薄錛?nbsp;

List customerLists=session.find("from Customer as c"); 

榪愯浠ヤ笂find()鏂規硶鏃訛紝Hibernate灝嗗厛鏌ヨCUSTOMERS琛ㄤ腑鎵鏈夌殑璁板綍錛岀劧鍚庢牴鎹瘡鏉¤褰曠殑ID錛屽埌ORDERS琛ㄤ腑鏌ヨ鏈夊弬鐓у叧緋葷殑璁板綍錛孒ibernate灝嗕緷嬈℃墽琛屼互涓媠elect璇彞錛?nbsp;

select * from CUSTOMERS; 
select * from ORDERS where CUSTOMER_ID=1; 
select * from ORDERS where CUSTOMER_ID=2; 
select * from ORDERS where CUSTOMER_ID=3; 
select * from ORDERS where CUSTOMER_ID=4; 

閫氳繃浠ヤ笂5鏉elect璇彞錛孒ibernate鏈鍚庡姞杞戒簡4涓狢ustomer瀵硅薄鍜?涓狾rder瀵硅薄錛屽湪鍐呭瓨涓艦鎴愪簡涓騫呭叧鑱旂殑瀵硅薄鍥?


Hibernate鍦ㄦ绱笌Customer鍏寵仈鐨凮rder瀵硅薄鏃訛紝浣跨敤浜嗛粯璁ょ殑绔嬪嵆媯绱㈢瓥鐣ャ傝繖縐嶆绱㈢瓥鐣ュ瓨鍦ㄤ袱澶т笉瓚籌細 

錛?錛? select璇彞鐨勬暟鐩お澶氾紝闇瑕侀綣佺殑璁塊棶鏁版嵁搴擄紝浼氬獎鍝嶆绱㈡ц兘銆傚鏋滈渶瑕佹煡璇涓狢ustomer瀵硅薄錛岄偅涔堝繀欏繪墽琛宯+1嬈elect鏌ヨ璇?鍙ャ傝繖灝辨槸緇忓吀鐨刵+1嬈elect鏌ヨ闂銆傝繖縐嶆绱㈢瓥鐣ユ病鏈夊埄鐢⊿QL鐨勮繛鎺ユ煡璇㈠姛鑳斤紝渚嬪浠ヤ笂5鏉elect璇彞瀹屽叏鍙互閫氳繃浠ヤ笅1鏉?select璇彞鏉ュ畬鎴愶細 

select * from CUSTOMERS left outer join ORDERS 
on CUSTOMERS.ID=ORDERS.CUSTOMER_ID 

浠ヤ笂select璇彞浣跨敤浜哠QL鐨勫乏澶栬繛鎺ユ煡璇㈠姛鑳斤紝鑳藉鍦ㄤ竴鏉elect璇彞涓煡璇㈠嚭CUSTOMERS琛ㄧ殑鎵鏈夎褰曪紝浠ュ強鍖歸厤鐨凮RDERS琛ㄧ殑璁板綍銆?nbsp;

錛?錛夊湪搴旂敤閫昏緫鍙渶瑕佽闂瓹ustomer瀵硅薄錛岃屼笉闇瑕佽闂甇rder瀵硅薄鐨勫満鍚堬紝鍔犺澆Order瀵硅薄瀹屽叏鏄浣欑殑鎿嶄綔錛岃繖浜涘浣欑殑Order瀵硅薄鐧界櫧嫻垂浜嗚澶氬唴瀛樼┖闂淬?nbsp;
涓轟簡瑙e喅浠ヤ笂闂錛?span color="#ff0000" style="color: #ff0000;">Hibernate鎻愪緵浜嗗叾浠栦袱縐嶆绱㈢瓥鐣ワ細寤惰繜媯绱㈢瓥鐣ュ拰榪垏宸﹀榪炴帴媯绱㈢瓥鐣ャ傚歡榪熸绱㈢瓥鐣ヨ兘閬垮厤澶氫綑鍔犺澆搴旂敤紼嬪簭涓嶉渶瑕佽闂殑鍏寵仈瀵硅薄錛岃揩鍒囧乏澶栬繛鎺ユ绱㈢瓥鐣ュ垯鍏呭垎鍒╃敤浜哠QL鐨勫榪炴帴鏌ヨ鍔熻兘錛岃兘澶熷噺灝憇elect璇彞鐨勬暟鐩?/span>


瀵規暟鎹簱璁塊棶榪樻槸蹇呴』鑰冭檻鎬ц兘闂鐨勶紝 鍦ㄨ瀹氫簡1 瀵瑰榪欑鍏崇郴涔嬪悗錛?鏌ヨ灝變細鍑虹幇浼犺涓殑n +1 闂銆?nbsp;
1 錛? 瀵瑰錛屽湪1 鏂癸紝鏌ユ壘寰楀埌浜唍 涓璞★紝 閭d箞鍙堥渶瑕佸皢n 涓璞″叧鑱旂殑闆嗗悎鍙栧嚭錛屼簬鏄湰鏉ョ殑涓鏉ql鏌ヨ鍙樻垚浜唍 +1 鏉?nbsp;
2錛夊瀵? 錛屽湪澶氭柟錛屾煡璇㈠緱鍒頒簡m涓璞★紝閭d箞涔熶細灝唌涓璞″搴旂殑1 鏂圭殑瀵硅薄鍙栧嚭錛?涔熷彉鎴愪簡m+1

鎬庝箞瑙e喅n +1 闂錛?nbsp;
1 錛塴azy=true錛?hibernate3寮濮嬪凡緇忛粯璁ゆ槸lazy=true浜嗭紱lazy=true鏃朵笉浼氱珛鍒繪煡璇㈠叧鑱斿璞★紝鍙湁褰撻渶瑕佸叧鑱斿璞★紙璁塊棶鍏跺睘鎬э紝闈瀒d瀛楁錛夋椂鎵嶄細鍙戠敓鏌ヨ鍔ㄤ綔銆?nbsp;

2錛変簩綰х紦瀛橈紝 鍦ㄥ璞℃洿鏂幫紝鍒犻櫎錛屾坊鍔犵浉瀵逛簬鏌ヨ瑕佸皯寰楀鏃訛紝 浜岀駭緙撳瓨鐨勫簲鐢ㄥ皢涓嶆昻 +1 闂錛屽洜涓哄嵆浣跨涓嬈℃煡璇㈠緢鎱紝涔嬪悗鐩存帴緙撳瓨鍛戒腑涔熸槸寰堝揩鐨勩?nbsp;
涓嶅悓瑙e喅鏂規硶錛屼笉鍚岀殑鎬濊礬錛岀浜屾潯鍗村垰濂藉張鍒╃敤浜唍 +1 銆?/span>

3) 褰撶劧浣犱篃鍙互璁懼畾fetch=join(annotation : @ManyToOne() @Fetch(FetchMode.JOIN))



RoyPayne 2012-01-30 14:20 鍙戣〃璇勮
]]>
spring security 鏉冮檺鎺у埗http://www.tkk7.com/RoyPayne/archive/2012/01/20/368785.htmlRoyPayneRoyPayneFri, 20 Jan 2012 02:41:00 GMThttp://www.tkk7.com/RoyPayne/archive/2012/01/20/368785.htmlhttp://www.tkk7.com/RoyPayne/comments/368785.htmlhttp://www.tkk7.com/RoyPayne/archive/2012/01/20/368785.html#Feedback0http://www.tkk7.com/RoyPayne/comments/commentRss/368785.htmlhttp://www.tkk7.com/RoyPayne/services/trackbacks/368785.html1. 鍦╳eb.xml鏂囦歡涓姞鍏ilter澹版槑 
<!-- Spring security Filter -->
<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

榪欎釜Filter浼氭嫤鎴墍鏈夌殑URL璇鋒眰錛屽茍涓斿榪欎簺URL璇鋒眰榪涜Spring Security鐨勯獙璇併?nbsp;

娉ㄦ剰錛宻pringSecurityFilterChain榪欎釜鍚嶇О鏄敱鍛藉悕絀洪棿榛樿鍒涘緩鐨勭敤浜庡鐞唚eb瀹夊叏鐨勪竴涓唴閮ㄧ殑bean鐨刬d銆傛墍浠ヤ綘鍦ㄤ綘鐨凷pring閰嶇疆鏂囦歡涓紝涓嶅簲璇ュ啀浣跨敤榪欎釜id浣滀負浣犵殑bean銆?nbsp;

涓嶢cegi鐨勯厤緗笉鍚岋紝Acegi闇瑕佽嚜琛屽0鏄庝竴涓猄pring鐨刡ean鏉ヤ綔涓篎ilter鐨勫疄鐜幫紝鑰屼嬌鐢⊿pring Security鍚庯紝鏃犻渶鍐嶉澶栧畾涔塨ean錛岃屾槸浣跨敤<http>鍏冪礌榪涜閰嶇疆銆?nbsp;

閫氳繃鎵╁睍Spring Security鐨勯粯璁ゅ疄鐜版潵榪涜鐢ㄦ埛鍜屾潈闄愮殑綆$悊 

浜嬪疄涓婏紝Spring Security鎻愪緵浜?涓璇佺殑鎺ュ彛錛屽垎鍒敤浜庢ā鎷熺敤鎴峰拰鏉冮檺錛屼互鍙婅鍙栫敤鎴峰拰鏉冮檺鐨勬搷浣滄柟娉曘傝繖涓や釜鎺ュ彛鍒嗗埆鏄細UserDetails鍜孶serDetailsService銆?nbsp;

public interface UserDetails extends Serializable {
    
    GrantedAuthority[] getAuthorities();

    String getPassword();

    String getUsername();

    boolean isAccountNonExpired();

    boolean isAccountNonLocked();

    boolean isCredentialsNonExpired();

    boolean isEnabled();
}

public interface UserDetailsService {
    UserDetails loadUserByUsername(String username)
        throws UsernameNotFoundException, DataAccessException;
}

闈炲父娓呮錛屼竴涓帴鍙g敤浜庢ā鎷熺敤鎴鳳紝鍙﹀涓涓敤浜庢ā鎷熻鍙栫敤鎴風殑榪囩▼銆傛墍浠ユ垜浠彲浠ラ氳繃瀹炵幇榪欎袱涓帴鍙o紝鏉ュ畬鎴愪嬌鐢ㄦ暟鎹簱瀵圭敤鎴峰拰鏉冮檺榪涜綆$悊鐨勯渶姹傘傚湪榪欓噷錛屾垜灝嗙粰鍑轟竴涓嬌鐢℉ibernate鏉ュ畾涔夌敤鎴峰拰鏉冮檺涔嬮棿鍏崇郴鐨勭ず渚嬨?nbsp;


RoyPayne 2012-01-20 10:41 鍙戣〃璇勮
]]>
Spring涓璔uartz鐨勯厤緗?/title><link>http://www.tkk7.com/RoyPayne/archive/2012/01/19/368757.html</link><dc:creator>RoyPayne</dc:creator><author>RoyPayne</author><pubDate>Thu, 19 Jan 2012 06:53:00 GMT</pubDate><guid>http://www.tkk7.com/RoyPayne/archive/2012/01/19/368757.html</guid><wfw:comment>http://www.tkk7.com/RoyPayne/comments/368757.html</wfw:comment><comments>http://www.tkk7.com/RoyPayne/archive/2012/01/19/368757.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/RoyPayne/comments/commentRss/368757.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/RoyPayne/services/trackbacks/368757.html</trackback:ping><description><![CDATA[     鎽樿: Quartz鏄竴涓己澶х殑浼佷笟綰т換鍔¤皟搴︽鏋訛紝Spring涓戶鎵垮茍綆鍖栦簡Quartz錛屼笅闈㈠氨鐪嬬湅鍦⊿pring涓庢牱閰嶇疆Quartz錛?nbsp; <a href='http://www.tkk7.com/RoyPayne/archive/2012/01/19/368757.html'>闃呰鍏ㄦ枃</a><img src ="http://www.tkk7.com/RoyPayne/aggbug/368757.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/RoyPayne/" target="_blank">RoyPayne</a> 2012-01-19 14:53 <a href="http://www.tkk7.com/RoyPayne/archive/2012/01/19/368757.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Struts2-鎷︽埅鍣?鏉冮檺鎺у埗http://www.tkk7.com/RoyPayne/archive/2012/01/17/368664.htmlRoyPayneRoyPayneTue, 17 Jan 2012 08:35:00 GMThttp://www.tkk7.com/RoyPayne/archive/2012/01/17/368664.htmlhttp://www.tkk7.com/RoyPayne/comments/368664.htmlhttp://www.tkk7.com/RoyPayne/archive/2012/01/17/368664.html#Feedback0http://www.tkk7.com/RoyPayne/comments/commentRss/368664.htmlhttp://www.tkk7.com/RoyPayne/services/trackbacks/368664.htmlintercept鏂規硶鏈堿ctionInvocation瀵硅薄錛屽彲浠ヨ幏鍙栧綋鍓嶇殑Action璇鋒眰銆?br />
public class AuthorityInterceptor extends AbstractInterceptor {
    private static final long serialVersionUID = 1L; 
    private Logger LOG = Logger.getLogger(AuthorityInterceptor.class.getName()); 
    
    private AuthorityUtil authorityUtil;
    
    public String intercept(ActionInvocation invocation) throws Exception {
        if (authorityUtil == null) {
            authorityUtil = new AuthorityUtil();
        }
        
        //鑾峰彇褰撳墠鐢ㄦ埛鎵鏈夌殑鏉冮檺
        List<OperatorPurviewDO> operatorPurviews = getCurrentOperatorPurviews();
        
        //鑾峰彇褰撳墠鎿嶄綔鐨剈rl
        String currentUrl = getCurrentUrl(); 
        
         //濡傛灉鏄秴綰х鐞嗗憳鎴栨湁褰撳墠url鐨勬潈闄愶紝閭d箞鐩存帴榪斿洖銆?/span>
        if (OperatorUtil.getIsSuperAdmin() ||(OperatorUtil.getLoginName()!=null&&authorityUtil.checkUrl(operatorPurviews, currentUrl))){
             return invocation.invoke();
        }
         
        if (!OperatorUtil.getIsSuperAdmin()&&operatorPurviews.size()==0) {
            LOG.info("姝ょ敤鎴?" + OperatorUtil.getLoginName() + " 娌℃湁浠諱綍瑙掕壊錛屾病鏈夋潈闄愭墽琛屼換浣曞姛鑳?); 
            return "loginErr"; 
        }   
            return "authorityErr";
    }

2.struts2.xml 閰嶇疆interceptor

  2.1 瀹氫箟鑷畾涔夋嫤鎴櫒
<interceptor name="authorityInterceptor" class="com.wasu.eis.authority.AuthorityInterceptor" /> 
  2.2 鍔犱笂struts2榛樿鎷︽埅鍣紝褰㈡垚鎷︽埅鍣ㄦ爤
            <interceptor-stack name="eisManagerBasicStack">
                <interceptor-ref name="exception"/>
                <interceptor-ref name="alias"/>
                <interceptor-ref name="servletConfig"/>
                <interceptor-ref name="prepare"/>
                <interceptor-ref name="i18n"/>
                <interceptor-ref name="chain"/>
                <interceptor-ref name="debugging"/>
                <interceptor-ref name="profiling"/>
                <interceptor-ref name="scopedModelDriven"/>
                <interceptor-ref name="modelDriven"/>
                <interceptor-ref name="checkbox"/>
                <interceptor-ref name="staticParams"/>
                <interceptor-ref name ="fileUploadStack" /> 
                <interceptor-ref name="params">
                  <param name="excludeParams">dojo\..*</param>
                </interceptor-ref>
                <interceptor-ref name="conversionError"/>
                <interceptor-ref name="validation">
                    <param name="excludeMethods">input,back,cancel,browse</param>
                </interceptor-ref>
                <interceptor-ref name="workflow">
                    <param name="excludeMethods">input,back,cancel,browse</param>
                </interceptor-ref>
            </interceptor-stack>
            
            <interceptor-stack name="authorityInterceptorStack">
                <interceptor-ref name="authorityInterceptor" />
                <interceptor-ref name="eisManagerBasicStack" />
            </interceptor-stack>

3.璁劇疆涓虹己鐪佺殑鎷︽埅鍣?br />
<default-interceptor-ref name="authorityInterceptorStack"/>


RoyPayne 2012-01-17 16:35 鍙戣〃璇勮
]]>
spring浜嬪姟浼犳挱灞炴т笌闅旂綰у埆http://www.tkk7.com/RoyPayne/archive/2012/01/05/367919.htmlRoyPayneRoyPayneThu, 05 Jan 2012 07:25:00 GMThttp://www.tkk7.com/RoyPayne/archive/2012/01/05/367919.htmlhttp://www.tkk7.com/RoyPayne/comments/367919.htmlhttp://www.tkk7.com/RoyPayne/archive/2012/01/05/367919.html#Feedback0http://www.tkk7.com/RoyPayne/comments/commentRss/367919.htmlhttp://www.tkk7.com/RoyPayne/services/trackbacks/367919.html涓銆丳ropagation 錛堜簨鍔$殑浼犳挱灞炴э級

Propagation 錛氥銆key灞炴х‘瀹氫唬鐞嗗簲璇ョ粰鍝釜鏂規硶澧炲姞浜嬪姟琛屼負銆傝繖鏍風殑灞炴ф渶閲嶈鐨勯儴浠芥槸浼犳挱琛屼負銆傛湁浠ヤ笅閫夐」鍙緵浣跨敤錛歅ROPAGATION_REQUIRED--鏀寔褰撳墠浜嬪姟錛屽鏋滃綋鍓嶆病鏈変簨鍔★紝灝辨柊寤轟竴涓簨鍔°傝繖鏄渶甯歌鐨勯夋嫨銆?/span>
PROPAGATION_SUPPORTS--鏀寔褰撳墠浜嬪姟錛屽鏋滃綋鍓嶆病鏈変簨鍔★紝灝變互闈炰簨鍔℃柟寮忔墽琛屻?/span>
PROPAGATION_MANDATORY--鏀寔褰撳墠浜嬪姟錛屽鏋滃綋鍓嶆病鏈変簨鍔★紝灝辨姏鍑哄紓甯搞?/span>
PROPAGATION_REQUIRES_NEW--鏂板緩浜嬪姟錛屽鏋滃綋鍓嶅瓨鍦ㄤ簨鍔★紝鎶婂綋鍓嶄簨鍔℃寕璧楓?/span>
PROPAGATION_NOT_SUPPORTED--浠ラ潪浜嬪姟鏂瑰紡鎵ц鎿嶄綔錛屽鏋滃綋鍓嶅瓨鍦ㄤ簨鍔★紝灝辨妸褰撳墠浜嬪姟鎸傝搗銆?/span>
PROPAGATION_NEVER--浠ラ潪浜嬪姟鏂瑰紡鎵ц錛屽鏋滃綋鍓嶅瓨鍦ㄤ簨鍔★紝鍒欐姏鍑哄紓甯搞?/span>

1錛?PROPAGATION_REQUIRED
鍔犲叆褰撳墠姝h鎵ц鐨勪簨鍔′笉鍦ㄥ彟澶栦竴涓簨鍔¢噷錛岄偅涔堝氨璧蜂竴涓柊鐨勪簨鍔?/span>
姣斿璇達紝ServiceB.methodB鐨勪簨鍔$駭鍒畾涔変負PROPAGATION_REQUIRED, 閭d箞鐢變簬鎵цServiceA.methodA鐨勬椂鍊欙紝
ServiceA.methodA宸茬粡璧蜂簡浜嬪姟錛岃繖鏃惰皟鐢⊿erviceB.methodB錛孲erviceB.methodB鐪嬪埌鑷繁宸茬粡榪愯鍦⊿erviceA.methodA
鐨勪簨鍔″唴閮紝灝變笉鍐嶈搗鏂扮殑浜嬪姟銆傝屽亣濡係erviceA.methodA榪愯鐨勬椂鍊欏彂鐜拌嚜宸辨病鏈夊湪浜嬪姟涓紝浠栧氨浼氫負鑷繁鍒嗛厤涓涓簨鍔°?/span>
榪欐牱錛屽湪ServiceA.methodA鎴栬呭湪ServiceB.methodB鍐呯殑浠諱綍鍦版柟鍑虹幇寮傚父錛屼簨鍔¢兘浼氳鍥炴粴銆傚嵆浣縎erviceB.methodB鐨勪簨鍔″凡緇忚
鎻愪氦錛屼絾鏄疭erviceA.methodA鍦ㄦ帴涓嬫潵fail瑕佸洖婊氾紝ServiceB.methodB涔熻鍥炴粴

2錛?PROPAGATION_SUPPORTS
濡傛灉褰撳墠鍦ㄤ簨鍔′腑錛屽嵆浠ヤ簨鍔$殑褰㈠紡榪愯錛屽鏋滃綋鍓嶄笉鍐嶄竴涓簨鍔′腑錛岄偅涔堝氨浠ラ潪浜嬪姟鐨勫艦寮忚繍琛?/span>


3錛?PROPAGATION_MANDATORY
蹇呴』鍦ㄤ竴涓簨鍔′腑榪愯銆備篃灝辨槸璇達紝浠栧彧鑳借涓涓埗浜嬪姟璋冪敤銆傚惁鍒欙紝浠栧氨瑕佹姏鍑哄紓甯?/span>

4錛?PROPAGATION_REQUIRES_NEW
榪欎釜灝辨瘮杈冪粫鍙d簡銆?姣斿鎴戜滑璁捐ServiceA.methodA鐨勪簨鍔$駭鍒負PROPAGATION_REQUIRED錛孲erviceB.methodB鐨勪簨鍔$駭鍒負PROPAGATION_REQUIRES_NEW錛?/span>
閭d箞褰撴墽琛屽埌ServiceB.methodB鐨勬椂鍊欙紝ServiceA.methodA鎵鍦ㄧ殑浜嬪姟灝變細鎸傝搗錛孲erviceB.methodB浼氳搗涓涓柊鐨勪簨鍔★紝絳夊緟ServiceB.methodB鐨勪簨鍔″畬鎴愪互鍚庯紝
浠栨墠緇х畫鎵ц銆備粬涓嶱ROPAGATION_REQUIRED 鐨勪簨鍔″尯鍒湪浜庝簨鍔$殑鍥炴粴紼嬪害浜嗐傚洜涓篠erviceB.methodB鏄柊璧蜂竴涓簨鍔★紝閭d箞灝辨槸瀛樺湪
涓や釜涓嶅悓鐨勪簨鍔°傚鏋淪erviceB.methodB宸茬粡鎻愪氦錛岄偅涔圫erviceA.methodA澶辮觸鍥炴粴錛孲erviceB.methodB鏄笉浼氬洖婊氱殑銆傚鏋淪erviceB.methodB澶辮觸鍥炴粴錛?/span>
濡傛灉浠栨姏鍑虹殑寮傚父琚玈erviceA.methodA鎹曡幏錛孲erviceA.methodA浜嬪姟浠嶇劧鍙兘鎻愪氦銆?/span>

5錛?PROPAGATION_NOT_SUPPORTED
褰撳墠涓嶆敮鎸佷簨鍔°傛瘮濡係erviceA.methodA鐨勪簨鍔$駭鍒槸PROPAGATION_REQUIRED 錛岃孲erviceB.methodB鐨勪簨鍔$駭鍒槸PROPAGATION_NOT_SUPPORTED 錛?/span>
閭d箞褰撴墽琛屽埌ServiceB.methodB鏃訛紝ServiceA.methodA鐨勪簨鍔℃寕璧鳳紝鑰屼粬浠ラ潪浜嬪姟鐨勭姸鎬佽繍琛屽畬錛屽啀緇х畫ServiceA.methodA鐨勪簨鍔°?/span>

6錛?PROPAGATION_NEVER
涓嶈兘鍦ㄤ簨鍔′腑榪愯銆傚亣璁維erviceA.methodA鐨勪簨鍔$駭鍒槸PROPAGATION_REQUIRED錛?鑰孲erviceB.methodB鐨勪簨鍔$駭鍒槸PROPAGATION_NEVER 錛?/span>
閭d箞ServiceB.methodB灝辮鎶涘嚭寮傚父浜嗐?/span>

7錛?PROPAGATION_NESTED
鐞嗚ВNested鐨勫叧閿槸savepoint銆備粬涓嶱ROPAGATION_REQUIRES_NEW鐨勫尯鍒槸錛孭ROPAGATION_REQUIRES_NEW鍙﹁搗涓涓簨鍔★紝灝嗕細涓庝粬鐨勭埗浜嬪姟鐩鎬簰鐙珛錛?/span>
鑰孨ested鐨勪簨鍔″拰浠栫殑鐖朵簨鍔℃槸鐩鎬緷鐨勶紝浠栫殑鎻愪氦鏄絳夊拰浠栫殑鐖朵簨鍔′竴鍧楁彁浜ょ殑銆備篃灝辨槸璇達紝濡傛灉鐖朵簨鍔℃渶鍚庡洖婊氾紝浠栦篃瑕佸洖婊氱殑銆?/span>
鑰孨ested浜嬪姟鐨勫ソ澶勬槸浠栨湁涓涓猻avepoint銆?/span>
*****************************************
ServiceA {

/**
* 浜嬪姟灞炴ч厤緗負 PROPAGATION_REQUIRED
*/
void methodA() {
try {
//savepoint
ServiceB.methodB(); //PROPAGATION_NESTED 綰у埆
} catch (SomeException) {
// 鎵ц鍏朵粬涓氬姟, 濡?ServiceC.methodC();
}
}

}
********************************************
涔熷氨鏄ServiceB.methodB澶辮觸鍥炴粴錛岄偅涔圫erviceA.methodA涔熶細鍥炴粴鍒皊avepoint鐐逛笂錛孲erviceA.methodA鍙互閫夋嫨鍙﹀涓涓垎鏀紝姣斿
ServiceC.methodC錛岀戶緇墽琛岋紝鏉ュ皾璇曞畬鎴愯嚜宸辯殑浜嬪姟銆?/span>
浣嗘槸榪欎釜浜嬪姟騫舵病鏈夊湪EJB鏍囧噯涓畾涔夈?/span>

Spring浜嬪姟鐨勯殧紱葷駭鍒?/span>
 1. ISOLATION_DEFAULT錛?榪欐槸涓涓狿latfromTransactionManager榛樿鐨勯殧紱葷駭鍒紝浣跨敤鏁版嵁搴撻粯璁ょ殑浜嬪姟闅旂綰у埆.
      鍙﹀鍥涗釜涓嶫DBC鐨勯殧紱葷駭鍒浉瀵瑰簲
 2. ISOLATION_READ_UNCOMMITTED錛?榪欐槸浜嬪姟鏈浣庣殑闅旂綰у埆錛屽畠鍏呰浠ゅ涓涓簨鍔″彲浠ョ湅鍒拌繖涓簨鍔℃湭鎻愪氦鐨勬暟鎹?/span>
      榪欑闅旂綰у埆浼氫駭鐢熻剰璇伙紝涓嶅彲閲嶅璇誨拰騫誨儚璇匯?/span>
 3. ISOLATION_READ_COMMITTED錛?淇濊瘉涓涓簨鍔′慨鏀圭殑鏁版嵁鎻愪氦鍚庢墠鑳借鍙﹀涓涓簨鍔¤鍙栥傚彟澶栦竴涓簨鍔′笉鑳借鍙栬浜嬪姟鏈彁浜ょ殑鏁版嵁
 4. ISOLATION_REPEATABLE_READ錛?榪欑浜嬪姟闅旂綰у埆鍙互闃叉鑴忚錛屼笉鍙噸澶嶈銆備絾鏄彲鑳藉嚭鐜板夠鍍忚銆?/span>
      瀹冮櫎浜嗕繚璇佷竴涓簨鍔′笉鑳借鍙栧彟涓涓簨鍔℃湭鎻愪氦鐨勬暟鎹錛岃繕淇濊瘉浜嗛伩鍏嶄笅闈㈢殑鎯呭喌浜х敓(涓嶅彲閲嶅璇?銆?/span>
 5. ISOLATION_SERIALIZABLE 榪欐槸鑺辮垂鏈楂樹唬浠蜂絾鏄渶鍙潬鐨勪簨鍔¢殧紱葷駭鍒備簨鍔¤澶勭悊涓洪『搴忔墽琛屻?/span>
      闄や簡闃叉鑴忚錛屼笉鍙噸澶嶈澶栵紝榪橀伩鍏嶄簡騫誨儚璇匯?/span>

浠涔堟槸鑴忔暟鎹紝鑴忚錛屼笉鍙噸澶嶈錛屽夠瑙夎錛?/span>
 鑴忚: 鎸囧綋涓涓簨鍔℃鍦ㄨ闂暟鎹紝騫朵笖瀵規暟鎹繘琛屼簡淇敼錛岃岃繖縐嶄慨鏀硅繕娌℃湁鎻愪氦鍒版暟鎹簱涓紝榪欐椂錛?/span>
     鍙﹀涓涓簨鍔′篃璁塊棶榪欎釜鏁版嵁錛岀劧鍚庝嬌鐢ㄤ簡榪欎釜鏁版嵁銆傚洜涓鴻繖涓暟鎹槸榪樻病鏈夋彁浜ょ殑鏁版嵁錛?閭d箞鍙﹀涓
     涓簨鍔¤鍒扮殑榪欎釜鏁版嵁鏄剰鏁版嵁錛屼緷鎹剰鏁版嵁鎵鍋氱殑鎿嶄綔鍙兘鏄笉姝g‘鐨勩?/span>
    
 涓嶅彲閲嶅璇? 鎸囧湪涓涓簨鍔″唴錛屽嬈¤鍚屼竴鏁版嵁銆傚湪榪欎釜浜嬪姟榪樻病鏈夌粨鏉熸椂錛屽彟澶栦竴涓簨鍔′篃璁塊棶璇ュ悓涓鏁版嵁銆?/span>
             閭d箞錛屽湪絎竴涓簨鍔′腑鐨勪袱嬈¤鏁版嵁涔嬮棿錛岀敱浜庣浜屼釜浜嬪姟鐨勪慨鏀癸紝閭d箞絎竴涓簨鍔′袱嬈¤鍒扮殑鏁版嵁
             鍙兘鏄笉涓鏍風殑銆傝繖鏍峰氨鍙戠敓浜嗗湪涓涓簨鍔″唴涓ゆ璇誨埌鐨勬暟鎹槸涓嶄竴鏍風殑錛屽洜姝ょО涓烘槸涓嶅彲閲嶅璇匯?/span>
            
 騫昏璇? 鎸囧綋浜嬪姟涓嶆槸鐙珛鎵ц鏃跺彂鐢熺殑涓縐嶇幇璞★紝渚嬪絎竴涓簨鍔″涓涓〃涓殑鏁版嵁榪涜浜嗕慨鏀癸紝榪欑淇敼娑夊強
         鍒拌〃涓殑鍏ㄩ儴鏁版嵁琛屻傚悓鏃訛紝絎簩涓簨鍔′篃淇敼榪欎釜琛ㄤ腑鐨勬暟鎹紝榪欑淇敼鏄悜琛ㄤ腑鎻掑叆涓琛屾柊鏁版嵁銆傞偅涔堬紝
         浠ュ悗灝變細鍙戠敓鎿嶄綔絎竴涓簨鍔$殑鐢ㄦ埛鍙戠幇琛ㄤ腑榪樻湁娌℃湁淇敼鐨勬暟鎹錛屽氨濂借薄鍙戠敓浜嗗夠瑙変竴鏍楓?/span>

RoyPayne 2012-01-05 15:25 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 久久精品免费电影| 黄色网页免费观看| 日韩精品极品视频在线观看免费| 免费国产怡红院在线观看| 国产v亚洲v天堂a无| 国产h视频在线观看免费| 亚洲三级在线播放| 最近中文字幕无免费视频| 亚洲真人无码永久在线观看| 成年男女免费视频网站 | 亚洲精品国产第1页| 美丽的姑娘免费观看在线播放| 久久亚洲私人国产精品vA| 最近中文字幕免费2019| 亚洲一区免费视频| 日韩成人免费aa在线看| 免费观看四虎精品成人| 亚洲伊人久久大香线蕉综合图片| 免费人成激情视频在线观看冫| 亚洲小视频在线观看| 久久久久久久免费视频| 亚洲αⅴ无码乱码在线观看性色| 四虎永久免费影院| 精品免费tv久久久久久久| 亚洲一卡二卡三卡| 免费人成在线观看播放国产| 99re8这里有精品热视频免费| 亚洲av日韩av无码| 黄a大片av永久免费| 一级毛片大全免费播放下载| 亚洲国产成人久久综合碰碰动漫3d | 高清免费久久午夜精品| 亚洲成A人片在线观看WWW| 97免费人妻无码视频| 美美女高清毛片视频黄的一免费 | 亚洲综合久久综合激情久久| 毛片免费视频在线观看| 又硬又粗又长又爽免费看 | 在线免费观看韩国a视频| 免费91麻豆精品国产自产在线观看 | 国产gav成人免费播放视频|