【问题标题】:problem with protected method in spring using MappingMediaTypeFileExtensionResolverSpring 中使用 MappingMediaTypeFileExtensionResolver 的受保护方法的问题
【发布时间】:2019-11-25 15:14:38
【问题描述】:

我对在 SpringBoot 应用程序中使用这个类有疑问 MappingMediaTypeFileExtensionResolver, 我想获得 mediatype 表单文件扩展名,但我需要的唯一方法是受保护的( lookupMediaType(String extension) ) 我可以直接实现该方法,但我正在寻找更好的解决方案。

Map<String, MediaType> mapping =  new HashMap<String, MediaType>();
mapping.put("PDF", MediaType.APPLICATION_PDF);
mapping.put("TEXT", MediaType.TEXT_PLAIN);
MappingMediaTypeFileExtensionResolver resolver = new MappingMediaTypeFileExtensionResolver(mapping);


this.fileType = resolver.lookupMediaType("JSON"); 

如果我在另一个包中,我如何访问它?

【问题讨论】:

    标签: java spring spring-boot file-extension media-type


    【解决方案1】:

    我猜,这个方法是供springframework内部使用的。但是你可以在一个扩展MappingMediaTypeFileExtensionResolver的简单类中创建一个公共方法,代码如下:

    public class MediaTypeDemoResolver extends MappingMediaTypeFileExtensionResolver {
    
    public MediaTypeDemoResolver(Map<String, MediaType> mediaTypes) {
        super(mediaTypes);
    }
    
    public MediaType lookupMediaType(String extension) {
        return super.lookupMediaType(extension);
    }}
    

    改用上面的公共方法:

    Map<String, MediaType> mapping = new HashMap<>();
        mapping.put("PDF", MediaType.APPLICATION_PDF);
        mapping.put("TEXT", MediaType.TEXT_PLAIN);
        MediaTypeDemoResolver resolver = new MediaTypeDemoResolver(mapping);
    
        this.fileType = resolver.lookupMediaType("JSON");
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2020-11-07
      • 2020-07-26
      • 2011-01-15
      • 1970-01-01
      • 1970-01-01
      • 2020-05-02
      • 2020-03-31
      • 2014-10-31
      • 2011-08-14
      相关资源
      最近更新 更多