-
spring-ioc注入方式和場景查看全部
-
事務(wù)開發(fā)注意: 1.保證事務(wù)內(nèi)部執(zhí)行的時間足夠短,不穿插費時的操作,如RPC/HTTP等,原因盡可能減少update時db行級鎖對數(shù)據(jù)的block 2.建議使用注解方式聲明Spring事務(wù),原因是可以自由控制事務(wù)體粒度查看全部
-
哈哈查看全部
-
生成md5查看全部
-
事務(wù)方法嵌套查看全部
-
聲明式事務(wù)使用方式查看全部
-
spring與service的依賴管理需配置以下部分, 1、在spring文件下新建spring-service.xml ,只需添加 <context:component-scan base-package="org.seckill.service"/> 2、在service的impl類中添加annotation。首先為class添加@service,其次為初始化對象,如private SeckillDao seckillDao添加@Autowired查看全部
-
java異常分編譯期異常和運行期異常,運行期異常不需要手工try-catch,spring的的聲明式事務(wù)只接收運行期異常回滾策略,非運行期異常不會幫我們回滾查看全部
-
接口的設(shè)計應(yīng)該站在使用者的角度,而不是想著去實現(xiàn)。 主要從三個方面:方法定義粒度、參數(shù)、返回類型。 返回類型盡量避免返回map類型查看全部
-
不同層面做不同的事情查看全部
-
Spring—IOC注入方式和場景查看全部
-
spring IOC 功能理解查看全部
-
集成測試代碼: ----/** -----* 集成測試:秒殺完整流程,可重復(fù)執(zhí)行 -----*/ -----@Test -----public void testSeckillLogic() { --------long id = 1001; --------Exposer exposer = seckillService.exportSeckillUrl(id); --------LOG.info("exposer={}",exposer); --------if (exposer.isExposed()) { ------------long phone = 15821739225L; ------------String md5 = exposer.getMd5(); ------------try { ----------------SeckillExecution seckillExecution = seckillService.executeSeckill(id, phone, md5); ----------------LOG.info("result={}",seckillExecution); ------------} catch (RepeatKillException e) { ----------------LOG.error(e.getMessage()); ------------} catch (SeckillCloseException e) { ----------------LOG.error(e.getMessage()); ------------} --------} else { ------------LOG.warn("秒殺未開始:{}",exposer.toString()); --------} -----}查看全部
-
使用注解控制事務(wù)的優(yōu)點:(xml配置是秒殺殺手)秒殺的瓶頸在哪里? 1.開發(fā)團隊達成一致約定,明確標(biāo)注事務(wù)方法的編程風(fēng)格. 2.保證事務(wù)方法的執(zhí)行時間盡可能短,不要穿插其他網(wǎng)絡(luò)操作RPC/HTTP請求或者剝離到事務(wù)方法外部.保證實務(wù)操作干凈清晰. 3.不是所有的方法都需要事務(wù).如只有一條修改操作的,只讀操作不需要事務(wù)控制。(mysql行級鎖)查看全部
-
聲明式事務(wù)目的在于解脫繁瑣的關(guān)于事務(wù)的代碼,在實際的開發(fā)中,不需要關(guān)心事務(wù)的開啟、提交、回滾、關(guān)閉等等,而是直接交由第三方框架托管,比如spring。 本例推薦使用第三種基于注解的聲明式事務(wù)的方法,這種方式的優(yōu)點在于,當(dāng)看到@Transcation注解的時候知道這是一個與事務(wù)有關(guān)的方法,此時就會自覺遵守一些關(guān)于事務(wù)開發(fā)的規(guī)范,有利于程序的進一步維護。查看全部
舉報
0/150
提交
取消