iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >SpringCloud-Spring Boot Starter使用测试实例分析
  • 859
分享到

SpringCloud-Spring Boot Starter使用测试实例分析

2023-07-02 14:07:05 859人浏览 薄情痞子
摘要

这篇文章主要介绍了SpringCloud-spring Boot Starter使用测试实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SprinGCloud-Spring 

这篇文章主要介绍了SpringCloud-spring Boot Starter使用测试实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SprinGCloud-Spring Boot Starter使用测试实例分析文章都会有所收获,下面我们一起来看看吧。

Spring Boot Starter是什么?

Spring Boot Starter 是在 SpringBoot 组件中被提出来的一种概念、简化了很多烦琐的配置、通过引入各种 Spring Boot Starter 包可以快速搭建出一个项目的脚手架。

比如我们经常用的一些:

spring-boot-starter-WEB

spring-boot-starter-data-redis

spring-boot-starter-data-mongodb

spring-boot-starter-data-jpa:

spring-boot-starter-activeMQ

总体来说就是 starter 是一种对依赖的合成。

以前传统的做法

在没有 starter 之前,传统的SSM项目、假如我想要在 Spring 中使用 jpa,可能需要做以下操作:

首先在 Maven 中引入使用的数据库的依赖>>然后引入 jpa 的依赖>>在xml中配置一些属性信息>>调试调用直到可以正常运行。

上面这样的操作会有一些问题、比如:

如果过程比较繁琐,这样一步步操作会增加出错的可能性。

在配置的时候也会划掉大量的时间、对于新手和小白不太友好。

使用 Spring Boot Starter 之后

starter 的主要目的就是为了解决上面的这些问题

starter 的理念:

starter 会把所有用到的依赖都给包含进来,避免了开发者自己去引入依赖所带来的麻烦。需要注意的是不同的 starter 是为了解决不同的依赖,所以它们内部的实现可能会有很大的差异,例如 jpa 的 starter 和 Redis 的 starter 可能实现就不一样,这是因为 starter 的本质在于 synthesize,这是一层在逻辑层面的抽象,也许这种理念有点类似于 Docker,因为它们都是在做一个 “包装” 的操作,如果你知道 Docker 是为了解决什么问题的,也许你可以用 Docker 和 starter 做一个类比。

starter 的实现:

虽然不同的 starter 实现起来各有差异,但是他们基本上都会使用到两个相同的内容:ConfigurationProperties 和 AutoConfiguration。因为 Spring Boot 坚信 “约定大于配置” 这一理念,所以我们使用 ConfigurationProperties 来保存我们的配置,并且这些配置都可以有一个默认值,即在我们没有主动覆写原始配置的情况下,默认值就会生效,这在很多情况下是非常有用的。除此之外,starter 的 ConfigurationProperties 还使得所有的配置属性被聚集到一个文件中(一般在 resources 目录下的 application.properties),这样我们就告别了 Spring 项目中 XML 地狱。

SpringCloud-Spring Boot Starter使用测试实例分析

上面的 starter 依赖的 jar 和我们自己手动配置的时候依赖的 jar 并没有什么不同,所以我们可以认为 starter 其实是把这一些繁琐的配置操作交给了自己,而把简单交给了用户。除了帮助用户去除了繁琐的构建操作,在 “约定大于配置” 的理念下,ConfigurationProperties 还帮助用户减少了无谓的配置操作。并且因为application.properties文件的存在,即使需要自定义配置,所有的配置也只需要在一个文件中进行,使用起来非常方便。采用的starter都上面都给大家列出来了。

创建Spring Boot Starter步骤

创建starter 项目

创建ConfigurationProperties 用来保存配置信息

创建AutoConfiguration,引用定义好的配置信息

在 AutoConfiguration 实现所有 starter 应该完成的操作,并且把这个类加入 spring.factories 配置文件中进行声明

打包项在 SpringBoot 项目中引入该项目依赖,然后就可以使用该 starter 了

具体操作步骤:

idea新建一个starter项目、直接执行下一步即可生成项目。

SpringCloud-Spring Boot Starter使用测试实例分析

在xml中加入如下配置文件:

<?xml version="1.0" encoding="UTF-8"?><project xmlns="Http://maven.apache.org/POM/4.0.0"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>    <artifactId>http-starter</artifactId>    <version>0.0.1-SNAPSHOT</version>     <!-- 自定义starter都应该继承自该依赖 -->    <!-- 如果自定义starter本身需要继承其它的依赖,可以参考 https://stackoverflow.com/a/21318359 解决 -->    <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starters</artifactId>        <version>1.5.2.RELEASE</version>    </parent>     <dependencies>        <!-- 自定义starter依赖此jar包 -->        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter</artifactId>        </dependency>        <!-- lombok用于自动生成get、set方法 -->        <dependency>            <groupId>org.projectlombok</groupId>            <artifactId>lombok</artifactId>            <version>1.16.10</version>        </dependency>    </dependencies> </project>

创建 proterties 类来保存配置信息

@ConfigurationProperties(prefix = "http") @Getterpublic class HttpProperties {     // 如果配置文件中配置了http.url属性,则该默认属性会被覆盖    private String url = "https://blog.csdn.net/weixin_39709134?type=blog"; }

创建业务类:

@Setter@Getterpublic class HttpClient {     private String url;     // 根据url获取网页数据    public String gethtml() {        try {            URL url = new URL(this.url);            URLConnection urlConnection = url.openConnection();            BufferedReader br = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(), "utf-8"));            String line = null;            StringBuilder sb = new StringBuilder();            while ((line = br.readLine()) != null) {                sb.append(line).append("\n");            }            return sb.toString();        } catch (Exception e) {            e.printStackTrace();        }        return "error";    } }

这个业务类包含了url属性和一个getHtml方法,用于获取一个网页HTML 数据

创建 AutoConfiguration

@Configuration@EnableConfigurationProperties(HttpProperties.class)public class HttpAutoConfiguration {     @Resource    private HttpProperties properties; // 使用配置     // 在Spring上下文中创建一个对象    @Bean    @ConditionalOnMissingBean    public HttpClient init() {        HttpClient client = new HttpClient();         String url = properties.getUrl();        client.setUrl(url);        return client;    } }

在上面的 AutoConfiguration 中我们实现了自己要求:在 Spring 的上下文中创建了一个 HttpClient 类的 bean,并且我们把 properties 中的一个参数赋给了该 bean。

最后,我们在resources文件夹下新建目录META-INF,在目录中新建spring.factories文件,并且在spring.factories中配置 AutoConfiguration:

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\com.nosuchfield.httpstarter.HttpAutoConfiguration

最后使用 Maven 打包该项目。之后创建一个 SpringBoot 项目,在项目中添加我们之前打包的 starter 作为依赖,然后使用 SringBoot 来运行我们的 starter

测试如下:

@Componentpublic class RunIt {     @Resource    private HttpClient httpClient;     public void hello() {        System.out.println(httpClient.getHtml());    } }

SpringCloud-Spring Boot Starter使用测试实例分析

之后可以在 application.properties中修改配置来进行测试证明 properties 中的数据确实被覆盖

关于“SpringCloud-Spring Boot Starter使用测试实例分析”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“SpringCloud-Spring Boot Starter使用测试实例分析”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: SpringCloud-Spring Boot Starter使用测试实例分析

本文链接: https://www.lsjlt.com/news/342497.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SpringCloud-Spring Boot Starter使用测试实例分析
    这篇文章主要介绍了SpringCloud-Spring Boot Starter使用测试实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringCloud-Spring ...
    99+
    2023-07-02
  • SpringCloud-Spring Boot Starter使用测试及问题小结
    目录Spring Boot Starter是什么?以前传统的做法使用 Spring Boot Starter 之后starter 的理念:starter 的实现:创建Spring B...
    99+
    2024-04-02
  • Spring Boot Starter的示例分析
    这篇文章给大家分享的是有关Spring Boot Starter的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Spring Boot 简介Spring框架功能很强大,但是就算是一个很简单的项目,我们也要...
    99+
    2023-05-31
    spring boot starter
  • Spring Boot Starters使用实例分析
    本篇内容主要讲解“Spring Boot Starters使用实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spring Boot Starters使用...
    99+
    2024-04-02
  • 使用spring-boot如何实现整合dubbo中的Spring-boot-dubbo-starter
    使用spring-boot如何实现整合dubbo中的Spring-boot-dubbo-starter?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在application.p...
    99+
    2023-05-31
    springboot art dubbo
  • TiDB实例测试分析
    本文小编为大家详细介绍“TiDB实例测试分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“TiDB实例测试分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 ...
    99+
    2024-04-02
  • Spring Boot底层原理实例分析
    这篇“Spring Boot底层原理实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Spring ...
    99+
    2023-06-29
  • Spring Boot配置文件实例分析
    今天小编给大家分享一下Spring Boot配置文件实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一...
    99+
    2024-04-02
  • Spring Boot结合P6Spy的实例分析
    这篇文章给大家介绍Spring Boot结合P6Spy的实例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一:pom.xml 中添加依赖<dependency><groupId>p6spy&...
    99+
    2023-06-05
  • 使用Spring Boot进行单元测试详情
    目录前言使用 Spring Boot 进行测试系列文章依赖项不要在单元测试中使用Spring创建一个可测试的类实例属性注入是不好的提供一个构造函数减少模板代码使用Mockito来模拟...
    99+
    2024-04-02
  • Stream性能测试实例分析
    本篇内容主要讲解“Stream性能测试实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Stream性能测试实例分析”吧!目录一、反馈问&#xff1a;stream比for循环慢5倍...
    99+
    2023-06-29
  • Spring Boot中使用Spring MVC的示例解析
    目录1.MVC2.Spring MVC3.Spring Boot中使用Spring MVC3.1.配置3.1.1.文件配置3.1.2.代码配置3.2.使用3.2.1.映射处理器3.2...
    99+
    2023-05-15
    Spring Boot使用Spring MVC Spring Boot Spring MVC
  • Spring Boot数据响应问题实例分析
    本文小编为大家详细介绍“Spring Boot数据响应问题实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Spring Boot数据响应问题实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习...
    99+
    2023-06-29
  • Spring Boot应用开发的示例分析
    这篇文章主要介绍了Spring Boot应用开发的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Spring Boot是由Pivotal团队提供的全新Spring开发...
    99+
    2023-06-20
  • TestNG测试用例重跑分析
    这篇文章主要讲解了“TestNG测试用例重跑分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“TestNG测试用例重跑分析”吧!测试用例运行稳定性是自动化质量的一个重要指标,在运行中需要尽可...
    99+
    2023-06-04
  • Spring Boot监控SQL运行情况实例分析
    这篇文章主要介绍“Spring Boot监控SQL运行情况实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Spring Boot监控SQL运行情况实例分析”文章能帮助大家解...
    99+
    2023-06-29
  • Spring Boot Jar 包部署脚本的实例分析
    这篇文章给大家介绍Spring Boot Jar 包部署脚本的实例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。当使用 Spring Boot 进行开发时,它可以将项目打包成 Jar ...
    99+
    2023-06-22
  • SpringCloud Alibaba框架实例应用分析
    这篇“SpringCloud Alibaba框架实例应用分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Spri...
    99+
    2023-07-06
  • laravel9和laravels性能测试实例分析
    这篇文章主要介绍“laravel9和laravels性能测试实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“laravel9和laravels性能测试实例分析”文章能帮助大家解决问题。配置 l...
    99+
    2023-07-04
  • Web性能测试实例设计分析
    本篇内容介绍了“Web性能测试实例设计分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先,为什么要进行性能测试?性能不佳的应用通常无法实...
    99+
    2023-06-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作