java - Spring中使用MappingMediaTypeFileExtensionResolver的 protected 方法的问题

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

我对在 SpringBoot 应用程序中使用此类有疑问MappingMediaTypeFileExtensionResolver, 我想获得媒体类型表单文件扩展名,但我需要的唯一方法是 protected ( lookupMediaType(字符串扩展名)) 我可以直接实现该方法,但我正在寻找更好的解决方案。

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"); 

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

最佳答案

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

public class MediaTypeDemoResolver extends MappingMediaTypeFileExtensionResolver {

public MediaTypeDemoResolver(Map<String, MediaType> mediaTypes) {
    super(mediaTypes);
}

public MediaType lookupMediaType(String extension) {
    return super.lookupMediaType(extension);
}}

改用上面的公共(public)方法:

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");

希望这有帮助。

关于java - Spring中使用MappingMediaTypeFileExtensionResolver的 protected 方法的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59034890/

相关文章:

java - 向应用程序添加 commons-daemon 的值(value)

mysql - Spring MVC、Hibernate、MySQL(数据库关系)

javascript - 无法将自动完成选择值传递到输入字段

java - @Controller 的 Spring Boot Whitelabel 错误?

java - @Repository 和 @Autowired 在 Spring Boot Dao 和 Service Layer 中如何工作?

java - 是否可以同时提交两个表格?

java - 将姓氏分配给现金存款列表

java - 带有cygwin noclassdefinition的Windows中的hadoop发现错误

java - 为线程和数据库连接提供更多调试见解

java - 将 thymeleaf 登录表单转换为 REST 解决方案