内容简介:依赖注入是Spring的基本组件之一,也可以使用其他框架或自己完成。那么为什么要使用Spring?开发人员的生产力就是答案。Spring Framework的核心任务一直是提供依赖注入(DI)。Spring Boot还有助于管理依赖项,配置事务等等 - 但它只是达到目的一种手段而已。因此,开发人员项目不一定需要Spring也可以轻松开发纯依赖注入。或者,可以使用许多小框架中的一个。例如,可用于快速开发服务和部署HTTP端点的纯Web框架就是理想的选择,一个代表是关于“无容器”的支持Spring和Sprin
依赖注入是Spring的基本组件之一,也可以使用其他框架或自己完成。那么为什么要使用Spring?开发人员的生产力就是答案。
Spring Framework的核心任务一直是提供依赖注入(DI)。Spring Boot还有助于管理依赖项,配置事务等等 - 但它只是达到目的一种手段而已。因此,开发人员项目不一定需要Spring也可以轻松开发纯依赖注入。或者,可以使用许多小框架中的一个。例如,可用于快速开发服务和部署HTTP端点的纯Web框架就是理想的选择,一个代表是关于“无容器”的 Micronaut ,它不使用servlet容器,而是基于 Netty 的IO非阻塞。
支持Spring和Spring Boot的论点之一就是开发人员的工作效率。只要没有严重的理由反对,应该始终使用Spring Boot设置实现基于Spring的新应用程序。结果是应用程序框架始终看起来相同,并且可以进行类似配置。标准任务(例如配置数据库连接,无论是关系数据库还是图形数据库)都可以同样好地执行。这也适用于应用程序与其他服务的集成:声明启动程序的依赖项,并且可以在没有Spring Boot自动配置机制生成代码的情况下进行配置。
外部配置是另一项重要的生产力功能:如果默认值不合适,通常可以在外部进行调整。这些是属性或YAML格式的文件,环境变量,命令行参数和类似机制。除了诸如事务和缓存的跨平台处理,测试框架,框架内部事件系统和诸如Spring Data和集成之类的令人兴奋的项目之类的方面之外,这些机制是使用Spring的充分理由。
Spring Boot和微服务
关于微服务的炒作,长期以来被视为所有IT问题的灵丹妙药,正在逐渐减弱并屈服于更细微的观点。Spring Boot与术语微服务密切相关。这来自哪里?
Spring Boot的基础知识出现在微服务的最初繁荣阶段。Spring Boot经常与 Spring Cloud 一起使用。除此之外,Spring Cloud还包括部分开源Netflix堆栈,以及许多其他模块,这些模块极大地简化了创建分布式,基于云的方法的过程。
但是,Spring Boot也可以很好地构建经典的单片单体巨石应用程序或批处理过程,并且它不是一个微服务框架,因为它经常被误传。因此,没有银弹可以提前避免可能的问题,并在每种情况下都提供完美的架构。
SpringBoot集成
Spring Boot提供了各种项目(数据库,事件存储等)的集成。集成通常是节省资源的,并且可以通过所提到的 启动器机制 来提供。只有依赖项的声明才会激活自动配置,以便在此之前它不会对应用程序的资源消耗做出贡献。
Spring Boot项目可能非常小,但也非常大 - 取决于它所需的集成。这种灵活性在作者对项目中使用Spring Boot的估计中有所体现。典型的标准项目不存在,因为大多数域具有特殊的特征。但是,通常没有时间为需要交互的每个服务编写自己的集成。
核心开发
核心开发涵盖了促进Spring和Spring Boot实际工作的所有主题,还包括非功能性主题,例如对缓存的支持。
Spring DevTools加速了开发。它们允许在修改类文件后部分重新加载Spring上下文。之后,Spring Boot通常会快速启动,但重新加载仅更改的部件会更快。
配置处理器有助于将您自己的应用程序的配置外包给专用类:它生成可在所有主要IDE中读取的元数据。它们有助于编写application.properties或记录自己应用程序的可能配置。
缓存,方面和验证部分在Spring Framework本身中实现。但是,就像安全性和会话支持一样,它们只是Spring Boot自动配置的跨应用程序方面。
数据库
Liquibase和Flyway自动支持Spring Boot而无需进一步配置 - 它们与曾经配置的数据源一起工作。如果Spring Boot用于开发关系数据库微服务,那么问题就出现了:谁对数据库模式拥有主权?同样,Spring Boot在许多情况下提供了有用的工具。但是,该 工具 的有用应用由开发人员负责。
支持各种非关系数据库:Redis,Cassandra,Couchbase等,Spring Boot也支持像Neo4j这样的图形数据库和像Mongo或Elasticsearch这样的文档存储。通常,每个数据库都有单独的Spring Data模块。与JDBC / JPA环境一样,Spring Boot提供了配置URL和凭据的一致机制。
Web框架
Spring Web MVC和Spring WebFlux都是Spring Framework的一部分,两者是并行的。两者都是Spring Boot自动配置的面向请求的Web框架。对于面向组件的框架Vaadin,可以使用启动器。喜欢采用面向资源的方法的开发人员可以直接使用Spring Boot中的Jersey 2,而无需进一步配置走弯路。
在服务器上生成HTML内容并不流行。但模板引擎Thymeleaf,Freemarker,Mustache和Groovy模板可以直接与Spring Boot一起使用。
应用程序的实际附加值只有在进入生产操作时才会变得明显。诸如Actuator之类的SpringBoot启动模块对此有所帮助。它提供状态和健康端点的Web界面,并通过JMX提供有关应用程序的信息。 Micrometer 是一个收集系统,应用程序和系统指标的新项目。它可以通过Actuator进入应用程序并自动配置。或者,Micrometer可以独立于Spring Boot使用。
Spring Boot 2
Spring Boot 2中的一个主要特点是反应式编程模型。它们解决了有效使用资源的问题,尤其是线程。反应式编程不仅关系到HTTP请求的处理相关的,而且在数据库有关。
像 Akka , Vert.x 或 Lagom 这样的框架处于最前沿,但Spring提供了许多公司建立的基础技术的优势。因此,它拥有庞大的用户群和全面的知识。随着新数据类型(如Mono和Flux)以及支持基础架构的顺利引入,Spring 5和Spring Boot 2已成功维护并将这些知识提升到一个新的水平。
Spring Boot 2发布半年后,Redis,MongoDB,Cassandra和Couchbase的响应式驱动程序已准备就绪。Reactive Cloud Streams提供与Kafka或RabbitMQ的响应式连接。
Spring Boot 2.1
2018年9月下旬在华盛顿的 SpringOne平台 并行 发布Spring Framework 5.1 。与此同时, Spring Boot 2.1也可用 。Spring Framework的特别亮点一方面是JDK 11的支持
通过 Spring Fu ,开发了一个孵化器项目,其中可以开发和测试新的功能性跳跃功能,特别是在Kotlin方向。其中一些函数编程已经流入Spring Framework。
也突出了 JUnit 5的 全面支持。与年初相比,Maven和Gradle的构建管理工具的显着改进支持,几乎没有理由在新的Spring项目中放弃JUnit 5。
Spring Boot 2.1完全基于现代容器构建,需要Tomcat 9和Undertow 2。同样,完全支持JDK 11,因此开发人员不再需要依赖 Java 8。在安全性方面,spring boot 2.1还实现了核心OAuth 2资源服务器支持。
旨在提高生产力的高级功能和新功能列表很长。例如,允许将不同的Java记录器组合在一起并配置。
以上所述就是小编给大家介绍的《Spring Boot:从炒作到成熟的基础技术?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- AI的炒作周期为何不会在短时间内结束
- Nature论文预测余震只是炒作?数据科学家历时半年揪出漏洞
- 真实与炒作,发展与失望并存的一年:大咖共同回首2018展望2019
- java面试基础复习----基础的基础(1)
- 算法基础之基础排序
- golang基础(2)基础类型
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Apache Tomcat 6高级编程
Vivek Chopra、Sing Li、Jeff Genender / 人民邮电出版社 / 2009-3 / 79.00元
《Apache Tomcat 6高级编程》全面介绍了安装、配置和运行Apache Tomcat服务器的知识。书中不仅提供了配置选项的逐行分析,还探究了Tomcat的特性和功能,可以帮助读者解决出现在系统管理的各个阶段的各种问题,包括共享主机、安全、系统测试和性能测试及调优。 《Apache Tomcat 6高级编程》重点讲解Tomcat 6的应用知识。从基本的Tomcat和Web应用程序配置......一起来看看 《Apache Tomcat 6高级编程》 这本书的介绍吧!
图片转BASE64编码
在线图片转Base64编码工具
HEX CMYK 转换工具
HEX CMYK 互转工具