我正在使用Spring Boot开发一个简单的命令行应用程序。我需要它使用Spring的RestTemplate
与一些REST API进行交互。我应该引用作为依赖项spring-boot-starter-web
或spring-web
?这些类路径中的任何一个的存在是否会改变Spring Boot应用程序的行为,这应该是一个简单的命令行应用程序?哪个Spring模块应该用于命令行使用RestTemplate的Spring Boot应用程序?
回答
我会坚持https://spring.io/guides/gs/consuming-rest/的做法。
如果您不想创建Web服务器,请不要使用-starter-web
。 使用普通-starter
具有“裸露”引导应用程序并添加spring-web
以访问RestTemplate
。
因此,澄清,只是'春天网络'的存在不会改变“香草”春季启动应用程序到Web应用程序(与嵌入式服务器等)的行为? –
在问这个问题之前,我实际上正在检查那个教程。我错误'spring-boot-starter'作为'spring-boot-starter-web',因为'spring-web'追随它。 –
@PsychoPunch yep,'-starter-web'还为实际服务器添加了诸如'spring-boot-starter-tomcat'之类的附加依赖项。引导的自动配置部分(它是'spring-boot-autoconfigure'的一部分,初学者不包含代码)应该足够聪明,可以检测到你没有创建Web应用程序。尽管'spring-web'的存在似乎被用于检测。例如。在https://github.com/spring-projects/spring-boot/blob/master/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/condition/OnWebApplicationCondition.java – zapl
- 1. 多模块Spring Boot应用程序
- 2. 哪一个应该用在spring boot,spring BOM和spring IO之间?
- 3. RestTemplate或discoveryClient - 在Spring Cloud应用程序中使用哪一个?
- 4. 从命令行运行Spring Boot应用程序时出错
- 5. Apache使用ajp用于Spring Boot应用程序的Tomcat
- 6. 使用spring-boot时是否可以使用spring-boot命令行属性:运行?
- 7. 在WebSocketConfigurer中使用@PathParam(javax.websocket.server.PathParam)用于Spring Boot应用程序
- 8. Spring数据JPA使用Spring Boot应用程序问题
- 9. 使用Spring Boot构建Spring MVC应用程序
- 10. Spring-cloud-stream应用程序是否可以使用spring-boot?
- 11. Spring Boot应用程序中的SymmetricDS
- 12. 使用CookieLocaleResolver进行Spring Boot应用程序的错误页面
- 13. Spring Boot应用程序:将应用程序分成独立的任务从命令行运行?
- 14. 模块化Spring MVC应用程序
- 15. 在Spring-Boot应用程序中使用application.yaml配置hystrix命令属性
- 16. Spring Boot web应用程序未启动
- 17. Spring Boot JNDI应用程序设置
- 18. Spring Boot应用程序。 SecurityContextHolder与HttpSession
- 19. Spring-Boot应用程序启动失败
- 20. 测试Spring Boot应用程序?
- 21. Spring Boot应用程序日志级别
- 22. 使用spring-boot的Maven模块
- 23. 使用SoapUITestCaseRunner启动一个Spring Boot应用程序?
- 24. 在spring boot vaadin应用程序中使用多个主题
- 25. Spring Boot应用程序只应该在执行器的端口上收听
- 26. 集成Spring Boot和现有的Spring应用程序
- 27. 使用纯Spring的模块化Web应用程序?
- 28. 在Spring Boot中使用@ConfigurationProperties应用程序不起作用
- 29. 使用Spring Security保护Spring Boot Web应用程序不起作用
- 30. 基于Spring Boot的应用程序中的死信路由
你也可以做。添加启动器并排除tomcat部分可能是最简单的。 –