Java 弹簧注入类
我刚开始使用Spring,我刚刚加入了一个开发团队,该团队正在利用Spring开发我们正在开发的产品。我开始了解国际奥委会。然而,我在一个特别的问题上感到困惑。我一直在寻找答案,但什么也找不到 我正在查看的类上设置了Java 弹簧注入类,java,spring,Java,Spring,我刚开始使用Spring,我刚刚加入了一个开发团队,该团队正在利用Spring开发我们正在开发的产品。我开始了解国际奥委会。然而,我在一个特别的问题上感到困惑。我一直在寻找答案,但什么也找不到 我正在查看的类上设置了@Controller注释。其中一个方法具有@RequestMapping注释。此特定方法的方法签名包含我公司的一个专有类的参数。这个专有类上没有Spring的任何注释,也没有在Spring配置文件中列出 因此,我的问题是:当没有任何东西帮助框架识别参数时,如何注入该参数? 我怀疑它
@Controller
注释。其中一个方法具有@RequestMapping
注释。此特定方法的方法签名包含我公司的一个专有类的参数。这个专有类上没有Spring的任何注释,也没有在Spring配置文件中列出
因此,我的问题是:当没有任何东西帮助框架识别参数时,如何注入该参数?
我怀疑它能够做到这一点,因为在上一个事务中,专有类通过ModelAndView.addObject()
添加到模型中,但我希望有人能够确认或拒绝
具体情况如下:
addObject(proprietaryClass)
任何帮助都会很好。在您的bean配置中,您会找到一个转换服务bean。如果其他开发人员很好,他们会把它命名为“ConverterFactory”,它可能会扩展
org.springframework.format.support.FormattingConversionServiceFactoryBean
。您还可以为org.springframework.format.FormatterRegistry
grep代码库
这在。弹簧是智能的。。。真聪明。它可以查看请求参数的名称,并通过字段名将它们映射到POJO。例如,如果用户有“first”和“last”字段,则可以传入user.first=Joe&user.last=Blow,它将尝试设置用户对象的“first”和“last”属性。具体看一下名为绑定域对象的部分
另一种选择是,他们已经实现了一个转换器或转换器工厂。在我的项目中,我实现了一个通用的ConverterFactory,它处理我的任何数据库实体,花费很长时间,并通过id查找将其转换为物化实体。是用
@ModelAttribute
注释的特定方法参数?否,方法参数上没有任何注释。我只是搜索了一下,结果空手而归。我正在研究转换器的可能性。看起来在Spring配置文件中可能有一些对转换器的引用。好的。。。在更深入地研究这一点之后,我想我理解了正在发生的事情。如果我错了,请纠正我。我在登录页面中看到的是一个表单。我认为正在发生的是Spring自动将表单值映射到类。而且,这样做不需要开发人员在Spring配置文件中指定它,也不需要使用注释。这就是Spring中表单的工作方式吗?第一个建议是否要求Spring了解用户类?我正在研究转换器的可能性。在Spring配置文件中似乎有一些对转换器的引用。第一个建议不要求Spring知道用户类。它只是使用反射。好的。。。在更深入地研究这一点之后,我想我理解了正在发生的事情。如果我错了,请纠正我。就像你说的,春天真的很聪明,但我不知道它有多聪明。我看到的是登录页面是一个表单。我认为正在发生的是Spring自动将表单值映射到类。而且,这样做不需要开发人员在Spring配置文件中指定它,也不需要使用注释。这就是Spring中表单的工作方式吗?Spring接受约定而不是配置。约定是,如果表单输入名称与javapojo字段名称匹配(通过反射获得),那么它可以映射它,而无需进一步配置。