2015-10-26 100 views
0

我真正的問題是如何在Spring中查找對方法的期望(「方法的契約」)。我一直在打問題,除非我找到一些博客或堆棧溢出來解決特定問題,否則似乎沒有任何資料性文檔。我看錯了地方?我需要購買一些書嗎?去哪裏瞭解春天?

在當前的特定情況下:我正在通過將我的SQL表映射到Spring的默認值來查找用戶/密碼,但是當用戶不在時它會觸發空指針異常。我看到JdbcUserDetailsManager的「void setUserExistsSql(anSQLString)」,我想知道如果該sql字符串應該返回一個布爾值?一個null?以及它應該是什麼「命名」。谷歌搜索沒有提供任何使用示例,也沒有任何文檔。 javadocs I'm finding未註釋。我可以猜測和測試,但似乎應該有更好的方法來查找它?

+0

我剛剛搜索了JdbcUserDetailsManagerConfigurer並點擊第一個結果,然後通過在頁面內搜索它跳轉到authorityByUsernameQuery部分。這很容易找到,文檔看起來非常清晰,幷包含一個示例。你真的有什麼問題?你不瞭解校長的概念(哪種方法在所有方面都沒有提及)或權威? API文檔通常不會教授潛在的主題。 –

+0

@Engineer Dollery - 在這個例子中使用JdbcUserDetailsManagerConfigurer - 從文檔中知道用戶名必須命名爲'principal'?更相關的問題/示例在setUserExistsSql上 - 文檔中沒有評論 –

+0

是什麼讓你認爲它需要被稱爲原則?我假設你知道在這方面的原則是什麼?你已經閱讀了spring security的介紹,並且有必要了解這些方法的用途背景?儘管我的答案如下,這是春季做任何事情的必要前提。 –

回答

1

好的,自從版本1開始,我一直在使用spring,其他許多開源項目都遵循相同的模式。文檔編寫艱難且成本高昂,程序員捐贈免費時間往往不想編寫它。就文檔而言,Spring雖然是更好的項目之一。

但是,我總是發現有必要將spring的源代碼鏈接到我的項目中。如果你使用的是maven,你可以下載源代碼以及jar文件,IntelliJ(也可能是eclipse)等工具可以讓你深入源代碼並用它們的調試器跟蹤它的執行情況。

有了這些類型的項目,在某些時候幾乎總是需要鑽取並讀取源代碼,這是一件好事,因爲源始終是最新的,並且始終準確地描述您嘗試使用的行爲。另一方面,文檔通常使用非正式語言(例如英語)寫得很差,並且它永遠無法準確地描述任何內容,特別是如果它是由不是母語的人撰寫或閱讀的,通常情況下是這樣。

所以,回答你的問題 - 尋找來源。