前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >什么是springboot

什么是springboot

作者头像
叔牙
发布2020-11-19 15:21:32
7340
发布2020-11-19 15:21:32
举报
文章被收录于专栏:一个执拗的后端搬砖工

什么是springboot

这是一篇更专注于介绍springboot的简短文章,我们将讨论“什么是springboot”? 以及springboot如何帮助构建基于Java的企业应用程序。

介绍

作为Java开发人员,我们很可能直接或间接地使用基于Spring Framework的应用程序,Spring有多种方法来配置其行为,它提供了使用基于XML的配置或使用Annotations的方式,JavaConfig正在成为新的基于Spring的应用程序的标准,尽管这些方式似乎非常好,但是大型企业应用程序涉及数百个模块和复杂的业务规则,这些配置可能变得非常复杂。以下是大型应用程序带来的一些复杂情况:

  1. 每个模块都有自己的配置
  2. 每个模块都包含自己的一组依赖项(第三方依赖项)
  3. 升级应用程序(例如Spring 4.x到5.x)将变得复杂,因为我们需要确保正确升级所有必需的依赖项
  4. 如果某些依赖项无法正常工作,那么尝试查找根本原因是一个大型应用程序非常复杂且具有挑战性

所有上述问题或多或少都与确保在研发团队开始处理实际任务之前我们拥有了所有配置依赖有关,现在让我们谈谈我们用来处理任何基于Spring的应用程序的另一个用例,假设我们想创建一个基于Web的应用程序,这些是我们大多数人定期做的最常见的步骤:

  1. 使用我们选择的Maven或IDE创建Web应用程序
  2. 复制标准Web应用程序配置(Spring MVC应用程序的web.xml配置)
  3. 根据我们的要求调整以上配置
  4. 配置Spring MVC标准bean,如ViewResolver,MessageSource等
  5. 配置应用程序的数据库属性
  6. 在我们开始使用它之前建立数据库层并确保基础数据库连接到位(EntityManagerFactory,TransactionManager等)

此列表可以根据我们的应用程序类型显著增长。

1什么是springboot

所有上述步骤对我们来说都很重要,但是它们给开发团队增加了很多开销,而不是专注于解决实际的业务问题,初始时间将被消耗在以确保一切正常来开始工作,将springboot视为可以自动为我们完成这些初始任务的工具,springboot以我们使用的Spring平台的固定视角工作,确保团队可以快速开始解决实际业务问题而不是花时间在初始配置和设置上。

springboot提供了以下开箱即用的功能:

  1. 它通过采用固定视角来简化Spring依赖关系(我们将在更详细地讨论它)
  2. springboot提供了一组预先配置的技术/框架,以减少容易出错的配置,因此我们作为开发人员专注于构建业务逻辑而不是考虑项目设置
  3. 不需要为你的项目提供那些大的XML配置
  4. 内嵌服务器Tomcat,Jetty或Undertow
  5. 提供固定的Maven POM来简化配置

使用springboot,可以轻松管理和处理前边描述的问题,我们不需要在升级期间手动搜索兼容的jar,springboot将确保我们的应用程序升级到正确的版本。

让我们看一下Web应用程序的示例pom.xml,以了解示例springboot配置:

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-hateoas</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency>

只需密切关注<packaging>标签,springboot就可以灵活地将我们的应用程序作为jar运行,而不是强迫我们使用war作为必需的打包类型。

2更好的依赖管理

仔细检查配置,你不会找到所有Spring依赖项的任何条目(如Web MVC,核心,AOP,ORM,验证API等),你可能已经注意到类似的条目spring-boot-starter- *,这就是springboot的依赖管理过程,我们在我们的pom.xml中添加了spring-boot-starter-web,springboot将为springmvc应用程序获取所有必需的依赖项(不再需要手动配置)。

3自动配置

自动配置是springboot的另一个有趣的特性,这就是springboot团队说它有自己观点的原因,以下是Spring Boot会为你做的一些工作:

  1. 自动添加依赖项
  2. 自动配置表示springboot有一些合理的默认值,即根据配置,springboot会猜测应用程序的类型,并提供运行应用程序所需的默认实现,以防我们在应用程序中没有定义它们 ,如果你定义了这些,springboot将确保将这些默认值从上下文中删除,并让你的自定义配置掌管应用程序
  3. 为了给出更清晰的情景,假设你已经为JPA定义了依赖关系并且没有定义任何数据库配置,springboot将自动为我们创建所需的配置

4Servlet容器

应该记得在Servlet容器(Tomcat等)上部署应用程序的过程,每次我们进行这些小改动并要求将它们部署到应用服务器以测试我们的更改,springboot为嵌入式Servlet容器提供支持,我们不再需要在app服务器上部署我们的应用程序(可以使用标准main方法轻松运行),但同时我们可以使用http://<host>:<port>在浏览器上访问我们的应用程序。

我们的pom.xml中的Spring-boot-starter-web条目将为我们的Web应用程序提供嵌入式servlet容器,Apache Tomcat是springboot提供的默认servlet容器,然而,springboot提供了使用其他servlet容器的方法(我们要做的就是添加相应的starter)。

总结

在这篇文章中,我们了解了springboot,介绍了什么是springboot? springboot有什么好处? 讨论了springboot的不同特性,springboot内部为我们做了很多事情,这对我们来说似乎很神奇。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-11-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PersistentCoder 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1什么是springboot
  • 2更好的依赖管理
  • 3自动配置
  • 4Servlet容器
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档