2013-05-22 48 views
4

我目前正在明斯特大學準備我的學士論文。我計劃自動識別Spring配置中的典型問題。市場上有很多工具可以執行靜態代碼分析來發現錯誤或問題。這些顯然無法檢測到僅在運行時出現的問題。我將分析Spring應用程序的ApplicationContext,並通過使用反射和bean圖的分析來發現錯誤配置。開發Spring應用程序時最常見的錯誤是什麼?

例如: 一個簡單的例子是,如果有人想通過使用註釋使類或方法事務安全。他通常會在類或方法的上面添加一個@ Transactional-tag,但如果應用程序沒有正確配置,並且沒有註冊到ApplicationContext的事務管理器,它觀察註釋,那麼該標記將被忽略。不會出現錯誤信息,這是迄今爲止很難找到這些類型的問題的原因。

問題: 哪些是最常見的錯誤或由於使用這些彈簧機構誤配置的建築的故障,這可通過動態分析來檢測?有沒有參加過類似的項目?

P.S.在我的論文的過程中,我將開發一個原型,它可以檢測到這些類型的問題,並從此開放源代碼。 :)

+3

很酷的項目,作爲SO中的一個問題不太相關,imo。 'component-scan'-ing會讓我想起某些時候我錯過或做錯的事情,但很難分辨真正的預期軟件包是什麼。 –

+0

感謝您的建議。你知道任何其他平臺,這個問題可以更好地適應嗎? –

+0

也許[codereview](http://codereview.stackexchange.com/) –

回答

0

從我已經回答的Spring相關問題中,您的示例(未正確初始化的@Transaction)是最常見的問題之一。但隨着小tweek:通常情況下,問題是,有人tryes這樣的:

@Service 
public class SomeService() { 

    @Transaction 
    public void save(Some thing) { 
     ... 
    } 

    public void doSomeThing(Some thing) { 
    ... 
    this.save(thing); 
    } 
} 

然後他們想知道爲什麼使用doSomeThing@Transactional註釋未在帳戶中扣除。

問題是,這隻適用於這個真正的AspectJ而不是這個代理AOP。

+0

感謝您的回答。你描述的星座的問題是,我還需要靜態代碼分析,在ApplicationContext的動態分析之下。或者你有沒有看到其他方法? –

+0

@ a.ha是的:您需要一些靜態代碼分析來檢測方法的調用。 – Ralph

相關問題