《Spring Guides系列学习》guide21 - guide25

news2024/10/7 18:53:22

要想全面快速学习Spring的内容,最好的方法肯定是先去Spring官网去查阅文档,在Spring官网中找到了适合新手了解的官网Guides,一共68篇,打算全部过一遍,能尽量全面的了解Spring框架的每个特性和功能。
在这里插入图片描述
接着上篇看过的guide20,接着往下看。

guide21、Deploying to Cloud Foundry from STS

Cloud Foundry 是一个 2011 年推出的开源平台服务(PaaS),初衷是方便开发人员构建最早的容器化应用。Cloud Foundry 关注开发人员体验,为开发人员构建、部署和运行无状态云原生应用提供了划时代的平台。

STS:Spring Tool Suite,就是Spring官方基于Eclipse封装的一款开发工具, 主要是为了便于开发Spring应用程序。它与Eclipse相比较减少了很多原来的插件,主要是为了Spring程序服务的,当然开发其他的程序也是没有问题的。

主要是讲了用STS的spring boot dashboard,把一个简单的web应用程序,部署到cloud Foundry的操作步骤。


guide22、Creating CRUD UI with Vaadin

讲的是在JPA 存储库的基础上构建 Vaadin UI。实现一个具有完整 CRUD(创建、读取、更新和删除)功能的应用程序和一个使用自定义存储库方法的过滤示例。

Vaddin 是一个 Web 应用程序框架,用其开发的浏览器应用界面可以达到和桌面应用类似的效果,但和Flash,Silverlight 不同的是,Vaddin 应用无需再浏览器上安装任何插件。它是一个纯 Java 开发环境,开发人员无需深入了解 HTML,XML 或是 Javascipt。如果你曾经使用 Java 开发过 Swing,SWT 等应用,可以非常容易开始使用 Vaddin 开发 Web 应用。

就是加一个前端显示,根据源代码实现了下,可以在localhost:8080中打开页面:
在这里插入图片描述


guide23、Centralized Configuration

了解如何用cloud config去做一个配置服务器,然后spring应用程序可以通过它去访问git中的配置文件。

搭建了下:

1、设置配置文件的存储库。这里一般采用git文件存储库。初始化一个git仓库,上传文件a-bootiful-client.properties.

message = Hello world! Hello Spring!!

2、建立配置服务器,相当于配置文件存储库与应用程序的中介。

@EnableConfigServer
@SpringBootApplication
public class ConfigurationServiceApplication {

  public static void main(String[] args) {
    SpringApplication.run(ConfigurationServiceApplication.class, args);
  }
}

@EnableConfigServer : 该注解用于开启 Spring Cloud Config 的配置服务功能。

配置文件设置下:

spring.application.name=config-server
server.port=23500
server.address=localhost

# git repo
spring.profiles.active=git
spring.cloud.config.server.git.uri=https://github.com/Zhuao9705/creative-personal-backend.git
spring.cloud.config.server.git.default-label=main
spring.cloud.config.server.git.username=Zhuao9705
spring.cloud.config.server.git.password=********

3、构建一个config client去从config server读取配置

@SpringBootApplication
public class ConfigClientApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConfigClientApplication.class, args);
    }
    @RefreshScope
    @RestController
    class MessageRestController {

        @Value("${message:Hello default}")
        private String message;

        @RequestMapping("/message")
        String getMessage() {
            return this.message;
        }
    }
}

@RefreshScope注解:是Spring Cloud中的一个注解,当配置发生变更的时候可以在不重启应用的前提下完成bean中相关属性的刷新。

设置下配置文件:

spring.application.name=a-bootiful-client
spring.config.import=optional:configserver:http://localhost:23500/
management.endpoints.web.exposure.include=*

测试:

启动配置服务器和应用程序后,执行
在这里插入图片描述
可以直接从该接口获取配置文件的值。

如果修改了git中配置文件的值改为message = Hello world! ,可以执行actuator的端点,去刷新客户端并重新获取值。

$ curl localhost:8080/actuator/refresh -d {} -H "Content-Type: application/json"

然后再执行一下
在这里插入图片描述
参考文献:https://stevenocean.github.io/2020/12/31/spring-cloud-config-refresh.html


guide24、Accessing data with MySQL

主要讲的是怎么连接mysql,去进行操作数据。

主要的连接配置信息如下:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/zhuao?useUnicode=true&allowMultiQueries=true&characterEncoding=utf-8&useSSL=true&autoReconnect=true&serverTimezone=Asia/Shanghai
    username: ****
    password: ******
    driver-class-name: com.mysql.cj.jdbc.Driver

guide25、Creating API Documentation with Restdocs

主要讲的是用spring rest docs为API生成文档。这里面涉及到了spring boot的单元测试。

Spring REST Docs 是一个为 Spring 项目生成 API 文档的框架,它通过在单元测试中额外添加 API
信息描述,从而自动生成对应的文档片段。

单元测试可以参考下:https://cloud.tencent.com/developer/article/1779117

Guide涉及注解:

@SpringBootTest: @SpringBootTest注解告诉SpringBoot去寻找一个主配置类,并使用它来启动Spring应用程序上下文。SpringBootTest加载完整的应用程序并注入所有可能的bean,因此速度会很慢。

在这种情况下,不需要创建 MockMvc bean,可以直接通过RestTemplate进行请求测试(或者使用TestRestTemplate)。


@RunWith(SpringRunner.class):让JUnit运行Spring的测试环境,获得Spring环境的上下文的支持

@SpringBootTest
@RunWith(SpringRunner.class)
public class XXXServiceTest {
	@Resource
	private XXXService XXXService;
	
	@Test
	public void conflictTime() {
	  }
}

@AutoConfigureMockMvc:用于自动配置MockMvc,配置后MockMvc类可以直接注入,相当于new MockMvc。

@AutoConfigureRestDocs(outputDir = “target/snippets”):开启了生成snippets文件,并指定了存放位置。

@WebMvcTest:@WebMvcTest注解主要用于controller层测试,只覆盖应用程序的controller层,HTTP请求和响应是Mock出来的,因此不会创建真正的连接。因此需要创建 MockMvc bean进行模拟接口调用。

@WebMvcTest(HomeController.class)
@AutoConfigureRestDocs(outputDir = "target/snippets")
public class WebLayerTest {

   @Autowired
   private MockMvc mockMvc;

   @Test
   public void shouldReturnDefaultMessage() throws Exception {
      this.mockMvc.perform(get("/")).andDo(print()).andExpect(status().isOk())
            .andExpect(content().string(containsString("Hello, World")))
            .andDo(document("home"));
   }
}

执行测试方法后,生成的adoc文件可以在指定文件下看到。
在这里插入图片描述
对比下:

  1. Spring Boot的单元测试主要针对方法层面,可以测试Service层这类非对外暴露的接口的类中方法。
  2. Postman针对接口进行http测试,平时这个比较多,创建的测试接口可保存、分类。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/572978.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

这款高性价比商用笔记本值得入手

随话说:工欲善其事,必先利其器。 对于打工人的我来说,办公一定要有一款适合的笔记本,否则真的是事倍功半。近日入手了戴尔Latitude 3330这款笔记本,通过使用体验,感觉真是一款高性价比的笔记本了。 接下来…

分布式事务解决方案Seata 整合 Spring Cloud + Nacos

1. 简介 Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。 2. Docker 安装 Seata 2.1 下载镜像 docker pull seataio/se…

电子合同网页预览盖章效果实现

电子合同在现在应用越来越广,需求也就随之产生。 本篇文章主要记录两种网页盖章效果实现方式,自己记录一下, 也给需要的人提供一点思路和帮助。 效果 JqueryCSS实现 原理 通过定位盖章位置,之后操作图片悬浮到盖章位置 1.设置…

浙江大学计算机考研分析

关注我们的微信公众号 姚哥计算机考研 更多详情欢迎咨询 浙江大学(A)考研难度(☆☆☆☆☆☆) 浙江大学计算机科学与技术学院成立于1978年,始终秉承“人为本,和为贵,变则通”的文化理念&#…

SecureCRT日志设置每行时间

SecureCRT日志设置时针对每个会话单独设置的 下图两个串口打印的地方,每个是一个会话。 打开【选项】 按照如下选项进行配置: 每次断开重新链接都会重新存一个日志文件,文件生成时间以秒为最小单位。 并且每行都有时间记录。 一般使用”年…

聊聊得物数据研发优化策略 | 精选

1.前言 在离线数据研发中,随着业务的快速发展以及业务复杂度的不断提高,数据量的不断增长,尤其得物这种业务的高速增长,必然带来数据逻辑复杂度的提升,数据量越大,复杂度越高,对任务的性能的要…

【嵌入式Linux】源码菜单配置 | 编译 | 菜单配置的实现 | 源码编译的实现

源码配置编译 源码配置编译,要把中间各个环节都理清楚 厂商把自己增加的东西专门放了个文件独立,方便开发者发现变化 1.菜单配置 移植的第一步,就是选配,通过make menuconfig图形化界面选配 //载入配置 $ make ARCHarm64 tegra_defconfi…

JVM(HotSpot)

1、 类加载机制: 引导类(Bootstrap )加载器:负责加载支撑JVM运行的位于JRE的lib目录下的核心类库,比如 rt.jar、charsets.jar等扩展类(Extension )加载器:负责加载支撑JVM运行的位于…

真题详解(哈希表)-软件设计(八十五)

真题详解(树的结点)-软件设计(八十四)https://blog.csdn.net/ke1ying/article/details/130869095 要求邮件加密方式传输,邮件最大附件内容可达500MB,发送者不可抵赖,若邮件被第三方截获,第三方…

有哪些pdf转word的免费软件?这个办法值得一试

在日常工作和学习中,我们经常需要将PDF文件转换为Word文档。尤其是在需要编辑PDF文档中的内容时,将其转换为Word文档是非常必要的。但是,很多人不知道该如何快速完成这项任务。在本文中,我们将介绍一些简单的转换方式,…

智能排班系统 【管理系统功能、操作说明——上篇】

文章目录 功能设计共有功能系统管理员企业管理员门店管理员门店员工 页面与功能展示用户登录企业注册系统首页系统管理员首页企业管理员首页门店管理员首页 个人中心菜单管理日志管理登录日志 功能设计 不同的角色关注的任务和功能不同,针对不同的角色,…

树莓派485转USB串口调试教程

步骤1:接线方式:485转USB 注意接线口是否对应:A1B1 步骤2:查看串口配置—映射关系是否正确 命令:ls -l /dev serial0即GPIO映射的串口,默认是ttyS0,即mini串口 serial1即板载蓝牙映射的串口&am…

人工智能(Pytorch)搭建模型7-改造后的新型RegNet设计空间模型的搭建与训练

大家好,我是微学AI,今天给大家带来人工智能(Pytorch)搭建模型7-新型的卷积神经网络RegNet模型的搭建与训练,RegNet是一种新颖的卷积神经网络架构,它的设计理念是通过稀疏网络结构和精细的正则化来实现高效的计算和更好的泛化能力。…

小白看了也会的Redux编程

目录 介绍 演示 异步action react-redux 多组件管理的react-redux 扩展 介绍 redux是专门用于集中式管理状态的javascript库,并不是react的插件库。 比如你有多个组件A-E都想要用同一个组件D中的状态: 1)像以前我们可以通过父子组件通…

前几天面了个30岁左右的测试员,年薪50w问题基本都能回答上,必是刷了不少八股文···

互联网行业竞争是一年比一年严峻,作为测试工程师的我们唯有不停地学习,不断的提升自己才能保证自己的核心竞争力从而拿到更好的薪水,进入心仪的企业(阿里、字节、美团、腾讯等大厂.....) 所以,大家就迎来了…

TCP三次握手四次挥手(幽默版)

三次握手: 假设你是一只鸟,你要与另一只鸟进行交流。(你是客户端) 1.首先你会问候:“你好,我是一只鸟,你可以听到我说话吗?”(一次会话) 2.另一只鸟回答&am…

一文带你了解MySQL之Explain执行计划

前言: 一条查询语句在经过MySQL查询优化器的各种基于成本和规则的优化会后生成一个所谓的执行计划,这个执行计划展示了接下来具体执行查询的方式,比如多表连接的顺序是什么,对于每个表采用什么访问方法来具体执行查询等等。MySQL…

MySQL---show profile分析SQL、trace分析优化器执行计划

1. show profile分析SQL Mysql从5.0.37版本开始增加了对 show profiles 和 show profile 语句的支持。show profiles 能够 在做SQL优化时帮助我们了解时间都耗费到哪里去了。 通过 have_profiling 参数,能够看到当前MySQL是否支持profile: select ha…

3年软件测试经验月薪7k,只会“点点点”,我该如何破局?

经常听到一些行业内的朋友说 “做测试,有手就行” 但事实真的是如此嘛? 随着测试行业的发展,越来越多的测试岗位对自动化测试,性能测试都有所要求,这对于很多只会功能测试的职场老人们来说,有了一丝丝的危…

Druid连接池技术实践

什么是Druid连接池? Druid连接池是阿里巴巴开源的数据库连接池项目。 Druid连接池为监控而生,内置强大的监控功能,监控特性不影响性能。功能强大,能防SQL注入,内置Loging能诊断Hack应用行为。 哦,首先Dru…