Springboot学习笔记——3

news2024/11/15 16:50:23

Springboot学习笔记——3

  • 一、热部署
    • 1.1、手动启动热部署
    • 1.2、自动启动热部署
    • 1.3、热部署范围配置
    • 1.4、关闭热部署
  • 二、配置高级
    • 2.1、第三方bean属性绑定
    • 2.2、松散绑定
    • 2.3、常用计量单位应用
    • 2.4、bean属性校验
    • 2.5、进制数据转换规则
  • 三、测试
    • 3.1、加载测试专用属性
    • 3.2、加载测试类专用配置
    • 3.3、测试类中启动web环境
    • 3.4、发送虚拟请求
    • 3.5、匹配响应执行状态
    • 3.6、匹配响应体
    • 3.7、匹配响应头
    • 3.8、业务层测试事务回滚
    • 3.9、测试用例设置随机数据
  • 四、数据层解决方案
    • 4.1、SQL
      • 4.1.1、内置数据源
      • 4.1.2、jdbcTemplate
      • 4.1.3、H2数据库
    • 4.2、NoSQL
      • 4.2.1、redis下载安装与基本使用
      • 4.2.2、springboot整合redis
      • 4.2.3、Springboot读写Redis的客户端
      • 4.2.4、springboot操作Redis客户端实现技术切换(jedis)
      • 4.2.5、Mongodb
      • 4.2.6、Mongodb下载与安装

一、热部署

1.1、手动启动热部署

  • 开启开发者工具
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-devtools</artifactId>
	<optional>true</optional>
</dependency>
  • 激活热部署:Ctrl + F9

  • 关于热部署

    • 重启(Restart):自定义开发代码,包含类、页面、配置文件等,加载位置restart类加载器
    • 重载(ReLoad):jar包,加载位置base类加载器

1.2、自动启动热部署

  • 设置自动构建项目
    在这里插入图片描述

在这里插入图片描述

  • IDEA失去焦点5秒以后启动热部署

1.3、热部署范围配置

  • 默认不触发重启的目录列表

    • /META-INF/maven
    • /META-INF/resources
    • /resources
    • /static
    • /public
    • /templates
  • 自定义不参与重启排除项

devtools:
	restart:
		exclude: public/**,static/**

1.4、关闭热部署

  • 设置高优先级属性禁用热部署
@SpringBootApplication
public class SsmpApplication {
	public static void main(String[] args) {
		System.setProperty("spring.devtools.restart.enabled","false");
		SpringApplication.run(SsmpApplication.class);
	}
}

二、配置高级

2.1、第三方bean属性绑定

  • 使用@ConfigurationProperties为第三方bean绑定属性
@Bean
@ConfigurationProperties(prefix = "datasources")
public DruidDataSource dataSource(){
    DruidDataSource dataSource = new DruidDataSource();
    return dataSource;
}
datasources:
  driverClassName: com.mysql.cj.jdbc.Driver
  • @EnableConfigurationProperties注解可以将使用@ConfigurationProperties注解对应的类加入Spring容器
@SpringBootApplication
@EnableConfigurationProperties(serverConfig.class)
public class Springboot0701Application {
    @Bean
    @ConfigurationProperties(prefix = "datasources")
    public DruidDataSource dataSource(){
        DruidDataSource dataSource = new DruidDataSource();
        return dataSource;
    }
    public static void main(String[] args) {
        ConfigurableApplicationContext run = SpringApplication.run(Springboot0701Application.class, args);
        DruidDataSource dataSource= run.getBean(DruidDataSource.class);
        System.out.println(dataSource.getDriverClassName());
        serverConfig serverConfig = run.getBean(serverConfig.class);
        System.out.println(serverConfig.toString());
    }
}
//@Component
@Data
@ConfigurationProperties(prefix = "servers")
public class serverConfig {
    private String ipAddress;
    private int port;
    private long timeout;
}

注意事项

@EnableConfigurationProperties和@Component不能同时使用

  • 解除使用@ConfigurationProperties注释警告
    在这里插入图片描述
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
</dependency>

2.2、松散绑定

  • ConfigurationProperties绑定属性支持属性名宽松绑定
public class serverConfig {
    private String ipAddress;
    private int port;
    private long timeout;
}
  • 以下格式都支持
ip-Address: 189.176.0.1
ip_Address: 189.176.0.1
ipaddress: 189.176.0.1
IPADDRESS: 189.176.0.1 # 常量模式
ip-address: 189.176.0.1 # 烤肉串模式

注意事项

宽松绑定不支持注解@Value引用单个属性的方式

2.3、常用计量单位应用

  • Springboot支持JDK8提供的时间与空间计量单位
@Component
@Data
@ConfigurationProperties(prefix = "servers")
public class serverConfig {
    private String ipAddress;
    private int port;
    private long timeout;
    @DurationUnit(ChronoUnit.HOURS)
    private Duration serverTimeout;
    @DataSizeUnit(DataUnit.MEGABYTES)
    private DataSize dataSize;
}

在这里插入图片描述

2.4、bean属性校验

  • 开启数据校验有助于系统安全性,J2EE规范中JSR303规范定义了一组有关数据校验相关的API
  1. 添加3SR303规范坐标与Hibernate校验框架对应坐标
<dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
</dependency>

<dependency>
    <groupId>org.hibernate.validator</groupId>
    <artifactId>hibernate-validator</artifactId>
</dependency>
  1. 对Bean开启校验功能
@Component
@Data
@ConfigurationProperties(prefix = "servers")
//2. 开启对当前bean的属性注入校验
@Validated
public class serverConfig {
}
  1. 设置校验规则
@Component
@Data
@ConfigurationProperties(prefix = "servers")
//2. 开启对当前bean的属性注入校验
@Validated
public class serverConfig {

    private String ipAddress;

    //3.设置具体的规则
    @Max(value = 8888,message = "最大值不能超过8888")
    @Min(value = 202,message = "最小值不能小于202")
    private int port;

    private long timeout;
    @DurationUnit(ChronoUnit.HOURS)
    private Duration serverTimeout;
    @DataSizeUnit(DataUnit.MEGABYTES)
    private DataSize dataSize;
}

2.5、进制数据转换规则

  • 字面值表达式导致出现问题
int: 0123 # 会判断为八进制的123导致转换出现问题

注意yaml文件中对于数字的定义支持进制书写格式,如需使用字符串请使用引号明确标注

string: "0123"

三、测试

3.1、加载测试专用属性

  • 启动测试环境时可以通过properties参数设置测试环境专用的属性
//properties属性可以为当前测试用例添加临时的属性配置
@SpringBootTest(properties = {"test.prop=testValue2"})
public class propertiesAndArgsTest {
    @Value("${test.prop}")
    private String msg;
    @Test
    void testProperties(){
        System.out.println(msg);
    }
}
  • 优势:比多环境开发中的测试环境影响范围更小,仅对当前测试类有效
  • 在启动测试环境时可以通过args参数设置测试环境专用的传入参数
//args属性可以为当前测试用例添加临时的命令行参数
SpringBootTest(args = {"--test.prop=testValue3"})
public class propertiesAndArgsTest {
    @Value("${test.prop}")
    private String msg;

    @Test
    void testProperties(){
        System.out.println(msg);
    }
}

3.2、加载测试类专用配置

  • 使用@Import注解加载当前测试类专用的配置
@SpringBootTest
@Import({MsgConfig.class})
public class ConfigTest {
    @Autowired
    private String msg;
    @Test
    void test1(){
        System.out.println(msg);
    }
}
  • 可以加载测试范围配置应用于小范围测试环境

3.3、测试类中启动web环境

  • 模拟端口
package com.smulll;

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
class Springboot0801ApplicationTests {

    @Test
    void contextLoads() {
    }
}

3.4、发送虚拟请求

  • 虚拟请求测试
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
//开启虚拟MVC调用
@AutoConfigureMockMvc
class Springboot0801ApplicationTests {
    @Test
    void testWeb(@Autowired MockMvc mvc) throws Exception {
        //创建虚拟请求,当前访问/books
        MockHttpServletRequestBuilder builder = MockMvcRequestBuilders.get("/books");
        //执行请求
        ResultActions perform = mvc.perform(builder);
    }
}

3.5、匹配响应执行状态

  • 虚拟请求状态匹配
@Test
void testStatus(@Autowired MockMvc mvc) throws Exception {
    //创建虚拟请求,当前访问/books
    MockHttpServletRequestBuilder builder = MockMvcRequestBuilders.get("/books");
    //执行请求
    ResultActions perform = mvc.perform(builder);
    //设置预期值与真实值进行比较,测试成功通过,失败测试停止
    //定义本次调用的预期值
    StatusResultMatchers status = MockMvcResultMatchers.status();
    //预计本次调用的成功值,状态200
    ResultMatcher ok = status.isOk();
    //添加预计值到本次调用过程中进行匹配
    perform.andExpect(ok);
}

3.6、匹配响应体

  • 虚拟请求体匹配
@Test
void testBody(@Autowired MockMvc mvc) throws Exception {
    //创建虚拟请求,当前访问/books
    MockHttpServletRequestBuilder builder = MockMvcRequestBuilders.get("/books");
    //执行请求
    ResultActions perform = mvc.perform(builder);
    //设置预期值与真实值进行比较,测试成功通过,失败测试停止
    //定义本次调用的预期值
    ContentResultMatchers content = MockMvcResultMatchers.content();
    //预计本次调用执行结果
    ResultMatcher result = content.string("springboot");
    //添加预计值到本次调用过程中进行匹配
    perform.andExpect(result);
}
  • 虚拟请求体(json)匹配
@Test
void testJSON(@Autowired MockMvc mvc) throws Exception {
    //创建虚拟请求,当前访问/books
    MockHttpServletRequestBuilder builder = MockMvcRequestBuilders.get("/books");
    //执行请求
    ResultActions perform = mvc.perform(builder);
    //设置预期值与真实值进行比较,测试成功通过,失败测试停止
    //定义本次调用的预期值
    ContentResultMatchers content = MockMvcResultMatchers.content();
    //预计本次调用执行结果
    ResultMatcher result = content.json("{\n" +
            "    \"id\": 1,\n" +
            "    \"type\": \"springboot\",\n" +
            "    \"name\": \"springboot\",\n" +
            "    \"description\": \"springboot\"\n" +
            "}");
    //添加预计值到本次调用过程中进行匹配
    perform.andExpect(result);
}

3.7、匹配响应头

  • 虚拟请求头匹配
@Test
void testContentType(@Autowired MockMvc mvc) throws Exception {
    //创建虚拟请求,当前访问/books
    MockHttpServletRequestBuilder builder = MockMvcRequestBuilders.get("/books");
    //执行请求
    ResultActions perform = mvc.perform(builder);
    //设置预期值与真实值进行比较,测试成功通过,失败测试停止
    //定义本次调用的预期值
    HeaderResultMatchers Header = MockMvcResultMatchers.header();
    //预计本次调用执行结果
    ResultMatcher string = Header.string("Content-Type", "application/json");
    //添加预计值到本次调用过程中进行匹配
    perform.andExpect(string);
}

3.8、业务层测试事务回滚

  • 为测试用例添加事务,SpringBoot会对测试用例对应的事务提交操作进行回滚
@SpringBootTest
@Transactional
public class TestSave {
    @Autowired
    private bookServer bookServer;
}
  • 如果想在测试用例中提交事务,可以通过@Rollback注解设置
@SpringBootTest
@Transactional
@Rollback(false)
public class TestSave {
}

3.9、测试用例设置随机数据

  • 测试用例数据通常采用随机值进行测试,使用SpringBoot提供的随机数为其赋值
testcase:
  book:
    id: ${random.int}
    name: ${random.value}		#随机字符串,MDS字符串,32位
    type: ${random.int(10,100)}
    uuid: ${random.uuid}		#随机uuid
    publishTime: ${random.long}
  • ${random.int}表示随机整数
  • ${random.int(10)}表示10以内的随机数
  • ${random.int(10,20)}表示10到20的随机数
  • 其中()可以是任意字符,例如[]!!均可

四、数据层解决方案

4.1、SQL

4.1.1、内置数据源

  • 现有数据层解决方案技术选型
Druid + MyBatis-Plus + MySQL
  • 数据源:DruidDataSource
  • 持久化技术:MyBatis-Plus+MyBatis
  • 数据库:MySQL
  • SpringBoot提供了3种内嵌的数据源对象供开发者选择
    • HikariCP:默认内置数据源对象
    • Tomcat提供DataSource:HikariCP不可用的情况下,且在web环境中,将使用tomcat服务器配置的数据源对象
    • Commons DBCP:Hikari不可用,tomcat数据源也不可用,将使用dbcp数据源
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/springbootbase?serverTimezone=UTC
    username: root
    password: 123456
  • 通用配置无法设置具体的数据源配置信息,仅提供基本的连接相关配置,如需配置,在下一级配置中设置具体设定
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/springbootbase?serverTimezone=UTC
    username: root
    password: 123456
    hikari:
    	maximum-pool-size: 50

4.1.2、jdbcTemplate

  • 内置持久化解决方案——JdbcTemplate
@SpringBootTest
class Springboot0901ApplicationTests {

    @Test
    void testJdbc(){
        String sql = "select * from tb_book where id=1";
        List<Book> list = jdbcTemplate.query(sql, new RowMapper<Book>() {
            @Override
            public Book mapRow(ResultSet rs, int rowNum) throws SQLException {
                Book book = new Book();
                book.setId(rs.getInt("id"));
                book.setName(rs.getString("name"));
                book.setType(rs.getString("type"));
                book.setDescription(rs.getString("description"));
                return book;
            }
        });
        System.out.println(list);
    }
}
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
spring:
jdbc:
	template:
		query-timeout: -1	#查询超时时间
		max-rows: 500		#最大行数
		fetch-size: -1 		#缓存行数

4.1.3、H2数据库

  • springBoot提供了3种内嵌数据库供开发者选择,提高开发测试效率

    • H2
    • HSQL
    • Derby
  • 导入H2相关坐标

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <scope>runtime</scope>
</dependency>
  • 设置当前项目为web工程,并配置H2管理控制台参数
server: 
	port: 80
spring:
	h2:
		console: 
			path: /h2
			enabled: true
  • 访问用户名sa,默认密码123456
    在这里插入图片描述
  • 设置访问的数据源
server:
  port: 80
spring:
  h2:
    console:
      path: /h2
      enabled: true
  datasource:
    driver-class-name: org.h2.Driver
    url: jdbc:h2:~/test
    username: sa
    password: 123456
  • H2数据库控制台仅用于开发阶段,线上项目请务必关闭控制台功能
server:
  port: 80
spring:
  h2:
    console:
      path: /h2
      enabled: false

4.2、NoSQL

4.2.1、redis下载安装与基本使用

  • Redis是一款key-value存储结构的内存级NoSQL数据库

    • 支持多种数据存储格式
    • 支持持久化
    • 支持集群
  • redis下载
    redis下载(Windows)

  • 安装启动

    • Windows解压安装或一键式安装
    • 服务端启动命令
    redis-server.exe redis.windows.conf
    
    • 客户端启动命令
    redis-cli.exe
    

4.2.2、springboot整合redis

  • 导入SpringBoot整合Redis坐标
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
  • 配置Redis(采用默认配置)
spring:
  data:
    redis:
      host: localhost
      port: 6379
  • 主机:localhost(默认)
  • 端口:6379(默认)
  • RedisTemplate提供操作各种数据存储类型的接口API
    在这里插入图片描述
  • 客户端:RedisTemplate
@SpringBootTest
class Springboot10RedisApplicationTests {

    @Autowired
    private RedisTemplate redisTemplate;

    @Test
    void set() {
        ValueOperations valueOperations = redisTemplate.opsForValue();
        valueOperations.set("age",19);
    }

    @Test
    void get(){
        ValueOperations valueOperations = redisTemplate.opsForValue();
        Object o = valueOperations.get("age");
        System.out.println(o);
    }
}

4.2.3、Springboot读写Redis的客户端

  • StringRedisTemplate以字符串作为key和value,与Redis客户端操作等效
@SpringBootTest
public class RedisTest {
    @Autowired
    private StringRedisTemplate stringRedisTemplate;
    @Test
    void Demo1(){
        ValueOperations<String, String> ops = stringRedisTemplate.opsForValue();
        System.out.println(ops.get("name"));
    }
}

4.2.4、springboot操作Redis客户端实现技术切换(jedis)

  • 配置客户端
spring:
  data:
    redis:
      host: localhost
      port: 6379
      client-type: jedis
  • 配置客户端专用属性
spring:
  data:
    redis:
      host: localhost
      port: 6379
      client-type: jedis
      lettuce:
        pool:
          max-active: 16
      jedis:
        pool:
          max-active: 16
  • lettcus与jedis区别
    • jedis连接Redis服务器是直连模式,当多线程模式下使用jedis会存在线程安全问题,解决方案可以通过配置连接池使每个连接专用,这样整体性能就大受影响。
    • lettcus基于Netty框架进行与Redis服务器连接,底层设计中采用StatefulRedisConnection。StatefulRedisConnection自身是线程安全的,可以保障并发访问安全问题,所以一个连接可以被多线程复用。当然lettcus也支持多连接实例一起工作。

4.2.5、Mongodb

  • MongoDB是一个开源、高性能、无模式的文档型数据库。NoSQL数据库产品中的一种,是最像关系型数据库的非关系型数据库
  • 淘宝用户数据
    • 存储位置:数据库
    • 特征:永久性存储,修改频度极低
  • 游戏装备数据、游戏道具数据
    • 存储位置:数据库、Mongodb
    • 特征:永久性存储与临时存储相结合、修改频度较高
  • 直播数据、打赏数据、粉丝数据
    • 存储位置:数据库、Mongodb
    • 特征:永久性存储与临时存储相结合,修改频度极高
  • 物联网数据
    • 存储位置:Mongodb
    • 特征:临时存储,修改频度飞速

4.2.6、Mongodb下载与安装

  • Windows版Mongo下载
    • 下载地址
  • Windows版Mongo安装
    • 解压后设置数据目录
  • Windows版Mongo启动
    • 服务端启动
    mongod --dbpath=..\data\db
    
    • 客户端启动
    mongo --host=127.0.8.1 --port=27017
    

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

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

相关文章

mysql面试题32:MySQL数据库服务器性能分析的方法命令有哪些?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:MySQL数据库服务器性能分析的方法命令有哪些? MySQL数据库服务器性能分析的方法和命令有以下几种: EXPLAIN命令:用于分析查询语句的执行计划,…

基于springboot实现在线动漫信息交流分享平台项目【项目源码+论文说明】计算机毕业设计

基于springboot实现在线动漫信息交流分享平台演示 摘要 随着社会互联网技术的快速发展&#xff0c;每个行业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff1b;对于在线动漫信息平台当然也不能排除在外&#xff0c;随着网络技术的不断成熟&#x…

结婚请帖邀请函制作全攻略,一分钟学会

结婚是人生的重要时刻之一&#xff0c;而一份精美的结婚请帖邀请函则是新人向亲友们发出完美邀请的必备品。为了让你轻松制作出令人惊艳的结婚请帖邀请函&#xff0c;我们为你推荐一个简单易用的在线制作平台——乔拓云微传单平台。只需一分钟&#xff0c;你就能轻松学会&#…

城市项目招商创业园区供需特产公益小程序开源版开发

城市项目招商创业园区供需特产公益小程序开源版开发 城市项目招商创业园区供需特产公益小程序的功能主要包括以下几个方面&#xff1a; 项目招商&#xff1a;提供城市项目招商信息&#xff0c;包括项目介绍、投资额、回报率等详细信息&#xff0c;方便投资者了解项目情况&#…

云数据库(林子雨慕课课程)

文章目录 6.云数据库6.1 云数据库概述6.2 云数据库产品6.3 UMP系统6.3.1 UMP系统概述6.3.2 UMP系统架构6.3.3 UMP系统功能 6.4 Amazon云数据库6.4.1 Amazon和云计算的渊源6.4.2 Amazon AWS6.4.3 AWS平台上的云数据库6.5 微软云数据库SQL Azure 6.云数据库 6.1 云数据库概述 云…

小说推文和短剧推广真的赚钱吗以及授权渠道

先说授权渠道&#xff0c;可以通过”巨量推文“进行申请授权 小说推文和短剧推广大致分为cpa拉新 cps分成和cpm广告点击的收益 cpa拉新是通过你的引导进入后的新用户 cps分成是根据你的引导进入后并付费一定的比例分成给你 cpm广告点击是进入小程序后看了广告和点击了广告的…

浅述安防视频可视化场景中TSINGSEE青犀AI智能化应用的分析

随着社会的不断发展和安防需求的不断提升&#xff0c;安防视频可视化场景已经成为人们关注的焦点。而随着人工智能、大数据等技术的不断发展&#xff0c;智能化应用在安防视频可视化场景中的应用也越来越多。本文将分析安防视频可视化场景中的智能化应用&#xff0c;主要包括以…

【QT】Windows 编译并使用 QT 5.12.7源码

1、下载 QT 源码 QT5.12.7源码下载地址: download | QT 5.12.7 选择任意一种下载即可&#xff0c;适用于 Windows 和 Linux 环境 ​ 这里选择下载 .zip 文件。 2、安装依赖 (1) 安装 perl perl 安装包下载地址: download | perl for windows 根据当前系统选择对应版本。…

[硬件基础]-555定时器-单稳态多谐振荡器配置

555定时器-单稳态多谐振荡器配置 文章目录 555定时器-单稳态多谐振荡器配置1、概述2、单稳态多谐振荡器的内部运行原理2.1 初始条件2.2 运行条件 在上一篇文章中&#xff0c;我们了解了555定时器的内部工作原理。 在本文中&#xff0c;我们将研究 555 定时器的单稳态操作模式。…

STC89C51基础及项目第14天:循迹小车、跟随小车

1. 循迹小车基本原理和方案&#xff08;269.114&#xff09; 循迹模块使用 TCRT5000传感器的红外发射二极管不断发射红外线&#xff1a;当发射出的红外线 没有 被反射回来或被反射回来但强度不够大时&#xff0c;红外接收管一直处于关断状态&#xff0c;此时模块的输出端为 高…

积分球测量作用

积分球在测量光通量上的使用可以追溯到1890年&#xff0c;并且现在已经成为一个多方面广泛使用的仪器。积分球是专门用于LED光色参数测量和光谱分析的仪器。LED光源以其体积小、能耗低、响应快、寿命长等诸多优点&#xff0c;在各个领域都得到广泛使用&#xff0e;积分球作为一…

腾讯云学生用户专享活动汇总

腾讯云一直致力于为广大用户提供更加优惠的云计算服务&#xff0c;其中也包括学生用户。为了让学生用户更好地享受腾讯云的优惠政策&#xff0c;腾讯云推出了多种学生用户专享的优惠活动。本文将为大家介绍腾讯云学生用户专享的优惠活动&#xff0c;帮助学生用户更好地了解腾讯…

修炼k8s+flink+hdfs+dlink(四:k8s(二)组件)

一&#xff1a;控制平面组件。 控制平面组件会为集群做出全局决策&#xff0c;比如资源的调度。 以及检测和响应集群事件&#xff0c;例如当不满足部署的 replicas 字段时&#xff0c; 要启动新的 pod&#xff09;。 1. kube-apiserver。 该组件负责公开了 Kubernetes API&a…

QECon大会亮相产品,全栈测试平台推荐:RunnerGo

最近在gitee上看见一款获得GVP&#xff08;最有价值开源项目&#xff09;的测试平台RunnerGo&#xff0c;看他们官网介绍包含了接口测试、性能测试、自动化测试。知道他们有saas版可以试用&#xff0c;果断使用了一下&#xff0c;对其中场景管理和性能测试印象深刻&#xff0c;…

智慧公厕技术解析 | 提高公厕管理效率的关键

智慧公厕&#xff0c;作为现代城市管理的重要一环&#xff0c;已经越来越受到各地、各行业、各单位的重视。通过引入先进的技术手段&#xff0c;智慧公厕不仅能够提升管理效率&#xff0c;还能够改善用户体验&#xff0c;成为城市发展、旅游景区、商业大厦等场所的亮丽名片。本…

【项目】在线oj

1. 创建项目 创建maven项目。 引入依赖&#xff08;mysql connector和servlet&#xff09;&#xff1a; <dependencies><!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --><dependency><groupId>mysql</groupId><ar…

antd Form shouldUpdate 关联展示 form 数组赋值

form 数组中嵌套数值更新 注意&#xff1a;数组是引用类型 项目需求&#xff0c;表单中包含多个产品信息&#xff0c;使用form.list 数组嵌套&#xff0c;提货方式如果是邮寄展示地址&#xff0c;如果是自提&#xff0c;需要在该条目中增加两项 代码如下&#xff1a;// An hi…

提升企业管理效率!金蝶软件配置自定义域名,快速实现公网远程访问

文章目录 前言1. 保留自定义域名2. 域名解析3. 配置自定义域名4. 关于服务器选择以及域名备案的说明4.1 关于服务器地区的选择&#xff1a;4.2 关于自定义域名备案&#xff1a;4.3 关于域名过白名单&#xff1a; 前言 上篇文章我们讲过如何安装金蝶云星空&#xff0c;实现异地…

深度学习DAY3:高斯噪声

噪声 1 噪声定义 噪声是电路或系统中不含信息量的电压或电流。在工业与自然界中&#xff0c;存在着各种干扰源&#xff08;噪声源&#xff09;&#xff0c;如大功率电力电子器件的接入、大功率用电设备的开启与断开、雷击闪电等都会使空间电场和磁场产生有序或无序的变化&…

01 初识FPGA

01 初识FPGA 一.FPGA是什么 FPGA&#xff08;Filed Programmable Gate Array&#xff09;&#xff0c;现场可编程门阵列&#xff0c;一种以数字电路为主的集成芯片&#xff0c;属于可编程逻辑器件PLD的一种。 1.1 两大巨头 Xilinx(赛灵思)Altera&#xff08;阿尔特拉&#…