首页 > 编程语言 >走进Java接口测试之流行框架SpringBoot(概念篇)

走进Java接口测试之流行框架SpringBoot(概念篇)

时间:2023-04-06 15:01:01浏览次数:46  
标签:Java SpringBoot 框架 Spring 配置 接口 开发

走进Java接口测试之流行框架SpringBoot(概念篇)_xml

引言

说起 SpringBoot 不得不先了解一下 Spring 这个企业,不仅因为 Spring Boot 来源于 Spring 大家族,而是 Spring Boot 的诞生和 Sping 框架的发展息息相关。

Spring 历史

2002 年正是 Java EE 和 EJB 大行其道的时候,很多知名公司都是采用此技术方案进行项目开发。一个美国的小伙子 Rod Johnson 认为 EJB 太过臃肿,并不是所有的项目都需要使用 EJB 这种大型框架,应该会有一种更好的方案来解决这个问题。于是他写了一本书《 Expert One-on-One J2EE 》,介绍了当时 Java 企业应用程序开发的情况,并指出了 Java EE 和 EJB 组件框架中存在的一些主要缺陷。在这本书中他提出了一个基于普通 Java 类和依赖注入的更简单的解决方案,这也就是 Spring 的前身。

随后 Spring 发展进入快车道:

  • 2004 年 03 月,1.0 版发布。
  • 2006 年 10 月,2.0 版发布。
  • 2007 年 11 月更名为 SpringSource,同时发布了 Spring 2.5。
  • 2009 年 12 月,Spring 3.0 发布。
  • 2013 年 12 月,Pivotal 宣布发布 Spring 框架 4.0。
  • 2017 年 09 月,Spring 5.0 发布。

Spring 1.x 时代

在 Spring1.x 时代,都是通过 xml 文件配置 bean,随着项目的不断扩大,需要将 xml 配置分放到不同的配置文件中,需要频繁的在 java 类和xml 配置文件中切换。

Spring 2.x 时代

随着 JDK 1.5 带来的注解支持,Spring2.x 可以使用注解对 Bean 进行申明和注入,大大的减少了 xml 配置文件,同时也大大简化了项目的开发。 那么,问题来了,究竟是应该使用 xml 还是注解呢?

最佳实践:

  • 应用的基本配置用 xml,比如:数据源、资源文件等;
  • 业务开发用注解,比如:Service 中注入 bean 等;

Spring 3.x 到 Spring 4.x

从 Spring3.x 开始提供了 Java 配置方式,使用 Java 配置方式可以更好的理解你配置的 Bean,并且 Spring4.x 和SpringBoot 都推荐使用 java 配置的方式

在Java开发领域,Sping 应用很广,它的极致目标是简化Java开发,从2003年崭露头角至今,估计连 Rod Johnson 本人都没有想到,在 Java 领域,它会产生如此深远的影响。

SpringBoot 的诞生

随着使用 Spring 进行开发的个人和企业越来越多,Spring 也从单一简洁的小框架变成一个大而全的开源软件,Spring 的边界不断扩充,到了后来 Spring 几乎可以做任何事情了,可以集成了市面上主流的开源软件、中间件。 而Spring 每集成一个开源软件,就需要增加一些基础配置,慢慢的随着开发的项目越来越庞大,往往需要集成很多开源软件,因此后期使用 Spring 开发大型项目需要引入很多配置文件,太多的配置非常难以理解,并容易配置出错,到了后来人们甚至称 Spring 为配置灾难。

什么是Springboot

在上述环境下,SpringBoot 应运而生。它使用“习惯优于配置”(项目中存在大量的配置,此外还内置一个习惯性的配置,让你无须手动进行配置)的理念让 Java 项目快速运行起来。使用 SpringBoot 很容易创建一个独立运行(运行 Jar ,内嵌 Servlet 容器)、准生产级别的基于 Spring 的框架项目,使用 SpringBoot 你可以不用或者只需要很少的 Spring 配置。 用白话来理解,就是 SpringBoot 其实不是什么新框架,它默认配置了很多框架的使用方式,就像 Maven 整合了所有的 Jar 包,SpringBoot 整合了几乎所有的框架。 

走进Java接口测试之流行框架SpringBoot(概念篇)_xml_02

SpringBoot 特点

  • 使用 Spring 项目引导页面可以在几秒构建一个项目
  • 方便对外输出各种形式的服务,如 REST API、WebSocket、Web、Streaming、Tasks
  • 非常简洁的安全策略集成
  • 支持关系数据库和非关系数据库
  • 支持运行期内嵌容器,如 Tomcat、Jetty
  • 强大的开发包,支持热启动
  • 自动管理依赖
  • 自带应用监控
  • 支持各种 IDE,如 IntelliJ IDEA 、NetBeans

SpringBoot 优势

SpringBoot 开发更简单

SpringBoot 对开发效率的提升是全方位的,我们可以简单做一下对比:

使用 Spring 我们开发一个 web 项目需要做哪些工作:

1)配置 web.xml,加载 Spring 和 Spring mvc 

2)配置数据库连接、配置 Spring 事务 

3)配置加载配置文件的读取,开启注解 

4)配置日志文件

 … 

n) 配置完成之后部署 tomcat 调试 可能你还需要考虑各个版本的兼容性,jar 包冲突的各种可行性。

那么使用 SpringBoot 之后我们需要开发一个 web 项目需要哪些操作呢?

上面的 N 步和下面的 2 步形成巨大的反差,这仅仅只是在开发环境搭建方面。

SpringBoot 测试更简单

SpringBoot 对测试的支持强大,SpringBoot 内置了 7 种强大的测试框架:

  • JUnit: 一个 Java 语言的单元测试框架
  • Spring Test & SpringBoot Test:为 Spring Boot 应用提供集成测试和工具支持
  • AssertJ:支持流式断言的 Java 测试框架
  • Hamcrest:一个匹配器库
  • Mockito:一个 java mock 框架
  • JSONassert:一个针对 JSON 的断言库
  • JsonPath:JSON XPath 库

只需要在项目中引入 spring-boot-starter-test 依赖包,就可以对数据库、Mock、 Web 等各种情况进行测试。

SpringBoot 配置更简单

SpringBoot 的核心思想:约定优于配置

约定优于配置(convention over configuration),也称作按约定编程,是一种软件设计范式,旨在减少软件开发人员需做决定的数量,获得简单的好处,而又不失灵活性。

本质是说,开发人员仅需规定应用中不符约定的部分。例如,如果模型中有个名为 User 的类,那么数据库中对应的表就会默认命名为 user。只有在偏离这一约定时,例如将该表命名为 ”user_info”,才需写有关这个名字的配置。

SpringBoot 部署更简单

SpringBoot 内嵌容器,不仅仅让部署变得简单,其实在开发调试阶段也非常便利,对比以往 Spring 开发 Web 项目时配置 Tomcat 的繁琐。使用 SpringBoot 开发 Web 项目,让我们不需要关心容器的环境问题,专心写业务代码即可。

Jenkins 是目前持续构建领域使用最广泛的工具之一,使用 Jenkins 部署 SpringBoot 项目非常简单,大家想继续了解可以参考的文章:性能环境之Jenkins+Maven自动化部署SpringBoot压测环境(Docker篇),只需要前期做一些简单的配置,所以 SpringBoot + Docker + Jenkins 会将 SpringBoot 项目的部署做得更简单。

Spring 、SpringBoot 和 SpringCloud 的关系

Spring 两大核心功能 IocAop 成就了 Spring,Spring 在这两大核心的功能上不断的发展,才有了 Spring 事务、Spring Mvc 等一系列伟大的产品,最终成就了 Spring 帝国,到了后期 Spring 几乎可以解决企业开发中的所有问题。

SpringBoot 是在强大的 Spring 帝国生态基础上面发展而来,发明 Spring Boot 不是为了取代 Spring ,是为了让人们更容易的使用 Spring 。所以说没有 Spring 强大的功能和生态,就不会有现在的 SpringBoot 火热, SpringBoot 使用约定优于配置的理念,重新重构了 Spring 的使用,让 Spring 后续的发展更有生命力。

Spring Cloud 是一系列框架的有序集合。它利用 SpringBoot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 SpringBoot 的开发风格做到一键启动和部署。

Spring 并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过 SpringBoot 风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

Spring Cloud 是为了解决微服务架构中服务治理而提供的一系列功能的开发框架,并且 Spring Cloud 是完全基于 SpringBoot 而开发,Spring Cloud 利用 SpringBoot 特性整合了开源行业中优秀的组件,整体对外提供了一套在微服务架构中服务治理的解决方案。 

走进Java接口测试之流行框架SpringBoot(概念篇)_xml_03

综上所述,正是由于 Spring IocSpring Aop 两个强大的功能才有了 Spring ,Spring 生态不断的发展才有了 SpringBoot ,使用 SpringBoot 让 Spring 更易用更灵活,Spring Cloud 是基于 SpringBoot 开发的一套微服务架构下的服务治理方案。

用一个简单的包含关系来表达它们之间的关系。

 Spring ioc/aop > Spring > Spring Boot > Spring Cloud

小结

天下“武功”,为快不破。好的开源软件也应该如此,SpringBoot 的出现正是让 Java 编程变得更简单、更快速。


参考文献:

http://www.ityouknow.com/springboot/2018/06/12/spring-boo-java-simple.html


标签:Java,SpringBoot,框架,Spring,配置,接口,开发
From: https://blog.51cto.com/u_15181572/6173243

相关文章

  • springboot阿里云oss工具类
    pom依赖;yml配置:读取配置文件类:上传:完整工具类代码:点击查看代码`importcn.hutool.core.lang.UUID;importcom.aliyun.oss.OSS;importcom.aliyun.oss.OSSClientBuilder;importcom.aliyun.oss.model.*;importcom.luzhizheng.common.config.OSSConfig;impor......
  • JAVA - 基础篇
    时隔这么久,之前学习JAVA一直没有坚持下来,这次一定要坚持啊。是跟着B站尚硅谷的老师学习的!资料非常齐全,讲得也很认真仔细。这里会记录一些简单的归纳,很全很全的在老师的资料里就有!关注公众号就能领取,尚硅谷教育。前言学习一门计算机语言真的是一件很奇妙的事情,单靠简单的......
  • Java方法
    类,对象,方法 定义方法要加static才能正常引用,详见https://www.bilibili.com/video/BV12J41137hu?p=45&vd_source=7b7ae7eed522b23c0252ec372088c729   Java都是值传递.方法的重载:方法的名字可以相同,参数不相同即可.  可变参数:不定项       ......
  • 苹果CMS V10 API接口相关
    苹果CMSV10内置API接口网上查了一下没啥结果,都是采集和第三方的。所以看了下源码,提取出来的内内置接口如下,比较少,而且缺乏一些字段,还是要自己写才行,供参考。苹果CMSV10API接口相关影片接口url:/api.php/provide/vod/可用于获取分类、列表和详情ac:模式(videolist或detail详......
  • SpringBoot中如何编写一个优雅的限流组件?
    很早以前,我曾写过两篇介绍如何在SpringBoot中使用Guava和Redis实现接口限流的文章。具体包括:使用Guava实现单机令牌桶限流使用Redis实现分布式限流现在,一个问题摆在我们面前:如何将这两种限流机制整合到同一个组件中,以便用户随时切换呢?显然,我们需要定义一个通用的限流组件,将......
  • 1688关键字搜索新品数据API接口(item_search_new-按关键字搜索新品数据)
    1688关键字搜索新品数据API接口(item_search_new-按关键字搜索新品数据)代码接口教程如下:公共参数名称类型必须描述key String 是 调用key(必须以GET方式拼接在URL中)secret String 是 调用密钥api_name String 是 API接口名称(包括在请求地址中)[item_search,item_get,item_search......
  • 走进Java接口测试之读取配置文件
    前言但在大部分用例开发环境下,添加额外配置是无所避免的,比如自定义应用端口号、服务地址、数据库的配置等,都或多或少的需要一些外部的配置项等。在前文中我们有详细介绍在接口测试框架中如何基于SpringBoot快速搭建多环境配置,本文将在原有的基础上介绍集成如何快速读取配置文件的......
  • 性能监控之常见 Java Heap Dump 方法
    一、前言在本文中,我们总结下抓Javadump的几种不同方法。JavaHeapDump是特定时刻JVM内存中所有对象的快照。它们对于解决内存泄漏问题和分析Java应用程序中的内存使用情况非常有用。JavaHeapDump通常以二进制格式的hprof文件存储。我们可以使用jhat或JVisualVM之......
  • 1- Java概述
    1.人机交互1.1什么是cmd?就是在windows操作系统中,利用命令行的方式去操作计算机。我们可以利用cmd命令去操作计算机,比如:打开文件,打开文件夹,创建文件夹等。1.2如何打开CMD窗口?按下快捷键:win+R。此时会出现运行窗口。在运行窗口中输出cmd输出回车。解......
  • 2-Java基础语法
    1.注释注释是对代码的解释和说明文字。Java中的注释分为三种:单行注释://这是单行注释文字多行注释:/_这是多行注释文字这是多行注释文字这是多行注释文字_/注意:多行注释不能嵌套使用。文档注释(暂时用不到):/*_这是多行注释文字这是多行注释文字这是多......