当前位置: 首页 > 知识库问答 >
问题:

Spring可以根据HTTP头自动连线一个实现吗?

赵炯
2023-03-14

我有一个RESTful API,它应该提供文件上传服务。这个API应该支持几种类型,如JSON、XML等。由于我想将它们转换成相同的格式以简化下一个流程,所以我为每种类型编写了转换器。Spring有没有可能基于HTTP请求中的content-type头自动生成相应的转换器,这样我就不需要在接受不同的content-type的情况下多次编写API?

共有1个答案

祁均
2023-03-14

据我所知,自动连接是在您的Spring应用程序启动时解决的,而不是响应每个http请求。

也许你能发现这个Spring特性有用?如何访问Spring MVC REST控制器中的HTTP头信息?

通过使用它,您可以轻松地编写某种工厂,以便为您支持的每种类型的内容实现转换器。这将是最容易扩展的方法,以便在不损害您的设计的情况下支持新的内容类型

@RequestMapping("/upload")
public void upload(
    @RequestHeader("Content-Type") String contentType,
    @RequestBody String body)  {

    Converter converter = ConverterFactory.get(contentType);
    MyFormat commonFormat = converter.convert(body);
    doWhateverIMustWith(commonFormat);
}
 类似资料:
  • 问题内容: 需要一些帮助,我刚刚开始学习Spring,似乎无法弄清楚我们的错: Application.java-没有包 User.java-包com.mapping UserDAO.java-包com.accesors Root.java-包com.controllers 当我运行项目时,我似乎得到了以下启示 堆栈跟踪: 据我了解,这意味着@ComponentScan没有检测到软件包 问题答案:

  • 我有个小问题。如果类是用@component、@service、@controller或@repository注释的,并且我想注入它的依赖项,我需要@autowired吗? 这段代码对我来说非常适用,因为它是UserDeviceService中指定的@Service注释。是因为那个吗?

  • 我有一个带有自动扫描和@Component注释的Spring项目。一些组件需要使用@Autow的注入到不同的bean中。默认情况下,它是否将是作为单例创建的相同组件bean?如果是,如何将同一组件的不同实例注入不同的bean中? 附言:我知道它接近基础,听起来很一般。只是想自己说清楚。 提前致谢

  • 问题内容: 能否请您告诉我,我如何才能很好地为Hibernate实体启用Spring自动装配? 假设我有一个实体,并希望在那里有邮件发送者: 有没有比做的更好的方法 在我的DAO中? 谢谢! 问题答案: 有可能的!(这是Spring Roo中的默认样式!) 您所需要做的就是将@Configurable批注添加到您的实体。在配置中并使用AspectJ编织激活注释。 Spring参考中有一章:7.8.

  • 标准对象工厂可能如下所示: 是否可以设置绑定以便为我完成切换,即我所做的只是调用 getInstance 或注入?我正在研究辅助注射,但这似乎是不同的主题:https://code.google.com/p/google-guice/wiki/AssistedInject

  • 那么我的问题是,@javax为什么会这样做。注释。资源工作,但@AutoWired没有工作。为了在Restful控制器上进行测试,我尝试将MappingJackson2HttpMessageConverter注入@Autowired,在启动时,容器未能找到符合条件的bean,即使该类位于路径上。现在,为了解决这个问题,我进入了一个上下文xml文件并添加了bean: 然后在测试类中有成员变量: 然后