2015-10-26 147 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)等工具可以让你深入源代码并用它们的调试器跟踪它的执行情况。

有了这些类型的项目,在某些时候几乎总是需要钻取并读取源代码,这是一件好事,因为源始终是最新的,并且始终准确地描述您尝试使用的行为。另一方面,文档通常使用非正式语言(例如英语)写得很差,并且它永远无法准确地描述任何内容,特别是如果它是由不是母语的人撰写或阅读的,通常情况下是这样。

所以,回答你的问题 - 寻找来源。