在Spring MVC中绑定UUID

 默念我覀想你A_193 发布于 2023-02-13 07:47

在Spring MVC中绑定UUID的最简单方法是什么,这样可以:

@RequestMapping("/MyController.myAction.mvc")
@ResponseBody
public String myAction(UUID id, String myParam)...

使用上面我当前获得以下异常:

org.springframework.beans.BeanInstantiationException: 
Could not instantiate bean class [java.util.UUID]: 
No default constructor found; 
nested exception is java.lang.NoSuchMethodException: java.util.UUID.()

还有其他问题围绕着这个,但似乎没有人回答它.我正在使用Spring 3.latest(实际上是4 EA).我正在采用最新,最简单的方法来实现这一目标.

2 个回答
  • UUID是一个不能简单地实例化的类.假设它作为请求参数出现,您应首先使用参数注释参数@RequestParam.

    @RequestMapping("/MyController.myAction.mvc")
    @ResponseBody
    public String myAction(@RequestParam UUID id, String myParam)...
    

    现在,这需要一个请求参数,其名称id在请求中可用.该参数将转换为a UUID.然而,目前这将失败,因为目前没有任何东西可以从a转换String为a UUID.

    为此创建一个Converter可以做到这一点.

    public class StringToUUIDConverter implements Converter<String, UUID> {
        public UUID convert(String source) {
            return UUID.fromString(source);
        }
    }
    

    将此类挂钩到ConversionService,您应该对请求参数进行UUID转换.(如果它是一个请求标题,这也可以工作,基本上是为了进入的所有内容ConversionService).您也可能想要Converter使用另一种方式(UUID - > String).

    将它连接到Spring MVC在参考指南中很好地解释了(假设你使用xml配置).但简而言之:

    <mvc:annotation-driven conversion-service="conversionService"/>
    
    <bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
        <property name="converters">
            <set>
                <bean class="org.company.converter.StringToUUIDConverter"/>
            </set>
        </property>
    </bean>
    

    注意:从Spring 3.2 Spring a StringToUUIDConverter开始,它会自动注册.

    2023-02-13 07:55 回答
  • 从版本3.2开始,下面的转换器在Spring Framework(核心)中可用.

    org.springframework.core.convert.support.StringToUUIDConverter<String, java.util.UUID>
    

    2023-02-13 08:00 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有