我很困惑为什么我应该为我的下一个项目使用Spring Boot? Spring Boot和Spring Boot-less一样强大吗?或者有一些你无法用Spring Boot做的事情。为什么使用Spring Boot而不是Spring Boot-less?
回答
Spring Boot is opinionated包含电池的弹簧设置。如果你使用它,你会浪费更少的时间在非功能上,因为你会免费获得很多东西。的优点列出我所观察到比传统的弹簧安装(当然还有更多,检查弹簧引导网站):
- 依赖管理 - 常用库的版本是预先选择和不同的首发POM中分组你可以包含在你的项目中。通过选择一个Spring Boot版本,您可以隐式选择几十个依赖关系,您必须自行选择并协调自己。
- 自动配置 - 您不必手动配置分派器servlet,静态资源映射,属性源加载器,消息转换器等
- 先进的外部配置 - 有可以通过application.properties文件进行配置而不接触Java和XML配置
- “生产就绪”功能bean属性的大名单 - 你的健康检查,应用程序和JVM指标,jmx通过http和其他一些免费的东西
- 可运行jar包 - 你可以打包你的应用程序作为运行包含嵌入式tomcat的nable jar,因此它提供了一个独立的部署单元
我没有观察到任何缺点,它只是Spring而已。你可以创建任何你可以用“香草”春天创建的东西,只需要更快。
这是我简单的解释:
没有春天开机,一个将不得不把所有的依赖关系的正确版本的生成配置文件(例如pom.xml中)和手动配置所有的豆类。
这看起来像很多正常项目的非功能性任务。因此,Spring Boot会自动执行这些操作,假设一些约定。例如,如果您只在您的pom.xml中包含spring-boot-starter-web
依赖项,则会通过默认约定自动配置Web应用程序。
更令人感兴趣的是,默认配置的各个部分可以很容易地被覆盖。
通过几个official guides可以更好地了解Spring Boot。总而言之,除非应用程序足够异常,否则现在人们似乎更喜欢Spring Boot。 Spring Boot可以被看作只是一个配置层。所以,Spring的一切可能都应该可以使用Spring Boot。
非常好的解释,所以Spring Boot使捷径发展。但为什么程序结构不同? e.q.使用Spring Boot,网站案例的主要方法,与Spring MVC不同。 –
该结构是Spring Boot提供的默认结构。如果没有Spring Boot,就必须要有自己的结构。正如@mzc在他的评论中解释的那样,Spring Boot默认使用嵌入式tomcat来生成JAR/WAR。因此主要的方法。对于Web应用程序,Spring MVC将用于这两种情况:它将是Spring MVC + Spring Boot +您的定制与Spring MVC +完全布局您自己的结构。 – Sanjay
- 1. 为什么Spring @Qualifier不能与Spock和Spring Boot配合使用
- 2. 为什么Spring Boot Actuator会返回404而不是401?
- 3. 不使用Spring Boot作为父pom的后果是什么?
- 4. Spring WS:为什么Spring WS返回WebServiceTransportException而不是SoapFaultException
- 5. 为什么Spring Boot 1.5.3中不推荐使用GuavaCacheConfiguration?
- 6. Spring Boot不使用CommonsMultipartResolver?
- 7. Spring Boot不识别Spring MVC
- 8. Liberty Spring Boot vs Spring Boot
- 9. 什么是Spring,Spring MVC和Spring Boot项目的最佳项目目录结构
- 10. 为什么这个Spring Boot应用程序找不到主页?
- 11. 为什么@ Scheduled注释不能用@Transaction注解。 Spring Boot
- 12. Spring Boot/Spring Data.sql不运行Spring-Boot-1.0.0.RC1
- 13. 使用spring-boot时是否可以使用spring-boot命令行属性:运行?
- 14. Spring Boot + Spring Security使用AngularJS登录
- 15. Spring Boot - Spring Security无法使用enableautoconfig
- 16. 为什么Spring Boot为不同的实体处理“404 Not Found”?
- 17. 什么是Spring
- 18. 使用ehcache 3与Spring注解(不使用Spring Boot)
- 19. Spring Boot EnvironmentAware不叫
- 20. 为什么spring @autowired是null?
- 21. 在spring-boot中,是否有可能获得属性而不是Spring bean?
- 22. Spring-cloud-stream应用程序是否可以使用spring-boot?
- 23. 使用Spring DataAccessExceptions而不是JPA PersistenceExceptions有什么好处吗?
- 24. spring-boot-starter-jta-atomikos和spring-boot-starter-batch
- 25. spring-boot-starter-tomcat vs spring-boot-starter-web
- 26. 为什么Spring Boot不能正确编码XML /忽略XML javax.xml.bind.annotation。*?
- 27. 为什么Spring Boot中不包含Jadira Usertypes的个人版本?
- 28. Spring Boot + Apache CXF:为什么找不到wsdl?
- 29. 为什么spring-boot-actuator代码使用过滤器来捕获度量而不是拦截器?
- 30. 使用JSF Bean的Spring Boot
谢谢你的解释,但Spring Boot真的用于生产(活)项目还是一些快速原型?为什么Spring Boot有主要方法,不喜欢Spring MVC吗(在网站的情况下)? –
主要方法存在,所以你可以直接从jar运行项目。你也可以建立一个战争(很容易在'pom.xml'中选择),并对tomcat或其他独立的servlet包含器进行传统的部署。从那里它的工作方式与Spring MVC相同* Spring * MVC。 – mzc
我知道了。在我看来,只有一种方法来部署Spring项目(通过战争并上传到Tomcat中)。 但有一件事,为什么Spring会让用户手动执行他们的工作,如果有一个Spring Boot并且没有额外的优势? –