每次在開發和測試業務邏輯biz時老是碰到這樣那樣似曾相識的問題,現在記一下備忘。
1、使用jpa/hibernate/ebean等orm時來訪問資料庫時,不另外增加dao層。理由是orm已經封裝和統一了不同資料庫的基礎訪問、訪問操作,不需要重複勞動,除非有特殊需要。
2、事務處理就是在biz層上定義的,推薦使用spring容器來管理事務。
3、在使用事務註解時要注意@transactional註解只能使用在public方式上才有效。放在protected/private方法上不會報錯。另外只需要在要啟動事務的最外層方法上加這個註解,內部方法是不需要的。
4、在對查詢資料庫操作,應使用唯讀事務,對資料加共享鎖,以避免其他事務修改該資料。同時注意註解應使用這種形式:
@transactional(propagation=propagation.required, readonly=true)
使用propagation.required以確保事務的正常啟動,如果使用propagation=propagation.not_supported則不會啟動事務,readonly屬性實際上就失效了。
5、在使用spring來管理ebean的事務時,記得要設定。否則死活不會成功。ebean的spring例子上好像有錯。
6、在使用spring來管理事務時,有兩種生成**方式。預設是jdk自帶的**實現。推薦cglib方式,因為這種方式是使用的enhancer**方式,是在原有***bizimpl上產生了乙個增強的繼承類,所以**物件可以轉換成***bizimpl。這樣在測試時就更方便。因為我們業務介面方法肯定少於實現的方法。要測試實現上的各個方法,只有用cglib才能注入實現類。jdk proxy只能注入介面。
要使用cglib除了增加相關依賴包,還要在spring中增加。
至於兩種方式的效能,可參考如果被測的cglib版本比較低。
7、使用unitils來對biz層進行測試,並使用dbunit來初始化測試資料。使用dbunit也會有幾個問題:
使用@expecteddataset註解時,會出現org.dbunit.dataset.rowoutofbound***ception: 1 > (1)異常,但不影響結果,只需要換用新版本的dbunit就行了。出錯的版本是dbunit2.2.2。
(2)在配置spring事務後,本來測試時還正常的dataset測試檔案,會報出org.dbunit.dataset.nosuchcolumnexception: hip_person.basic_addr_id - (non-uppercase input column: basic_addr_id) in columnnametoindexes cache map. note that the map's column names are not case sensitive.異常。
出錯的原因是第一條測試資料有8個字段,第二條測試資料只有3個,dbnit會用第一條資料的字段去要求第二條資料的,結果就報錯了。結果這不是乙個bug,可以看這裡
如果要想測試通過,需要把每條記錄的字段都弄成一樣多,但是這樣太麻煩了。unitils也一直未更新解決該問題。結果只有自己重寫了multischemaxmldatasetfactory。另:可自己通過databaseunitils類來生成dataset的xsd。
(3)需要注意的@expecteddataset註解只驗證dataset xml檔案中對應的資料。不對資料庫所有的資料進行驗證。
8、在使用spring管理事務時,會碰到service/biz實現類因呼叫自身方法而導致事務錯誤的情況。如下:
class abiz
public void addall()
}
所以,需要在abiz中注入自身,通過spring**來呼叫帶事務的業務方法。
**修改如下:
class abiz
public void addall()
}
滲透測試業務 603250813
業務內容 1.資訊收集 資訊收集分析是所有入侵攻擊的前提 前奏 基礎。通過對網路資訊收集分析,可以相應地 有針對性地制定模擬黑客入侵攻擊的計畫,以提高入侵的成功率 減小暴露或被發現的機率。資訊收集的方法包括主機網路掃瞄 操作型別判別 應用判別 賬號掃瞄 配置判別等等。2.埠掃瞄 通過對目標位址的tc...
業務安全邏輯問題
業務安全邏輯問題 大多數的問題還是在網路通訊這一塊,和web安全一樣,也會存在sql注入 xss 檔案上傳這種漏洞。當然webview元件的問題,也的確是可以遠端觸發的,其修復非常簡單,更改一下api level就好了。最近半年參與公司對內對外的滲透專案比較多,從基本漏洞發現利用到內網滲透,整個流程...
整機壓力測試 手機整機方案公司之測試業務流程
內容概述 主要分享了手機整機方案公司關於測試部門的業務流程,做下彙總,方便後續面試時做下梳理,同時也方便即將要入職的測試同行們借鑑下 需求文件 首先有測試領導給出測試計畫,包括測試人力 時間 資源等等,並安排對應專案介面人 客戶經理 來與客戶對接需求以及後續反饋問題 需求文件是第一要素,一切開始都是...