SpringBoot学习——追根溯源servlet是啥,tomcat是啥,maven是啥 springBoot项目初步,maven构建,打包 测试

目录

  • 引出
  • 追根溯源,过渡衔接
    • servlet是啥?
    • tomcat是啥?
  • 前后端开发的模式
    • 1.开发模式:JavaWeb:MVC模型
    • 2.Web:Vue,MVVC模型
    • 3.后端相关
      • 3.1 同步与异步
      • 3.2 Controller层
      • 3.3 Service层:要加事务@Transactional
  • Maven是啥?项目管理
    • Maven 构建生命周期
    • 1.clean:清理,test:测试,compile:编译
    • 2.package:打包,打包成jar包和使用
      • (1)引入maven插件
      • (2)打包jar包和使用
    • 3.deploy:部署,关于部署到私服
  • 夯实基础,拔高项目
  • SpringBoot项目
    • 官方文档
    • 新建Maven项目
    • POM:project object model
    • 项目的结构
    • 真实项目中有三种环境
      • 没有配置mybatis导致的报错
      • @SpringBootApplication 的 exclude
    • druid连接数据库
    • banner.text
    • Maven项目管理
      • 1.clean:清理,test:测试,compile:编译
      • 2.package:打包,打包成jar包和使用
    • 关于测试
      • 1.单元测试@RunWith(SpringJUnit4ClassRunner.class)
      • 2.controller测试
    • 排除tomcat用netty或jetty
      • Netty和Jetty的区别
  • 总结

引出


1.追根溯源,servlet是啥,tomcat是啥,maven是啥;
2.前后端开发模式,mvc,mvvc,service层的事务;
3.maven对项目全生命周期的管理,打包jar包和运行;
4.springBoot项目的搭建,pom文件,项目结构,项目环境;
5.Druid连接数据库,管理连接,springBootApplication的exclude;
6.banner.text的使用,比较好玩;
7.单元测试和controller的接口测试;
8.排除tomcat,使用netty或jetty,以及两者的区别;

追根溯源,过渡衔接

Maven 翻译为"专家"、“内行”,是 Apache 下的一个纯 Java 开发的开源项目。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。

https://maven.apache.org/

在这里插入图片描述
https://mvnrepository.com/

在这里插入图片描述

Spring Boot Reference Documentation

在这里插入图片描述

https://spring.io/projects/spring-boot#overview

在这里插入图片描述

https://docs.spring.io/spring-boot/docs/2.7.12/reference/htmlsingle/#legal

在这里插入图片描述

https://www.bootschool.net/ascii-art/search

在这里插入图片描述

servlet是啥?

Servlet = Service + Applet,表示小服务程序;服务端可运行的java代码

Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。

Servlet 的命名可以看出 sun 命名的特点,如 Applet 表示小应用程序;Scriptlet = Script + Applet,表示小脚本程序;同样 Servlet = Service + Applet,表示小服务程序。

服务端可运行的java代码

servlet 是运行在 Web 服务器中的小型 Java 程序(即:服务器端的小应用程序)。servlet 通常通过 HTTP(超文本传输协议)接收和响应来自 Web 客户端的请求。servlet实例是由web服务器(tomcat)创建的,它是单例多线程的。单例是指servlet的实例只有一个,多线程是指每次客户端的请求,web服务器都会从线程池中分配一个工作线程去执行servlet的service()方法。

tomcat是啥?

The Jakarta EE platform is the evolution of the Java EE platform. Tomcat 10 and later implement specifications developed as part of Jakarta EE. Tomcat 9 and earlier implement specifications developed as part of Java EE.

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。

前后端开发的模式

1.开发模式:JavaWeb:MVC模型

分层架构:MVC(三层架构)

MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。

  • Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。
  • View(视图) - 视图代表模型包含的数据的可视化。
  • Controller(控制器) - 控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离开。

在这里插入图片描述

在这里插入图片描述

以登陆为例:

在这里插入图片描述
spring+mybatis+sql的项目结构

在这里插入图片描述

后续改进的地方:

  • 静态资源,比如图片,用NGNIX,反向代理;
  • 数据库存图片,短视频,怎么办?数据库吗?不行,数据库很慢 -----> 用缓存服务器访问

在这里插入图片描述

数据库的blob类型是一种用于存储二进制数据的数据类型。Blob(Binary Large Object)可以存储任意类型的数据,包括图像、音频、视频、文档等。在数据库中,Blob类型通常用于存储大型的二进制数据,例如图片或文件。Blob类型的数据可以通过数据库的API或查询语言进行读取和写入操作。

2.Web:Vue,MVVC模型

MVVC是一种软件架构模式,它是Model-View-ViewModel的缩写。MVVC模式是在MVC(Model-View-Controller)模式的基础上演化而来的。

在MVVC模式中,应用程序被分为三个主要部分:

  1. Model(模型):模型代表应用程序的数据和业务逻辑。它负责处理数据的获取、存储、验证和处理等操作。
  2. View(视图):视图是用户界面的可视化部分,负责展示数据给用户,并接收用户的输入。视图通常是通过绑定到ViewModel来显示和更新数据。
  3. ViewModel(视图模型):视图模型是连接模型和视图的桥梁。它负责从模型中获取数据,并将数据转换为视图可以理解和展示的格式。视图模型还负责处理用户输入,并将其传递给模型进行处理。视图模型通常实现了一些额外的逻辑,例如数据验证、数据转换和命令处理等。

MVVC模式的优点包括:

  1. 分离关注点:MVVC模式将数据和业务逻辑与用户界面分离,使得代码更加清晰和可维护。
  2. 可测试性:由于视图模型是独立于视图的,因此可以更容易地对其进行单元测试。
  3. 可重用性:通过将视图模型与视图分离,可以更容易地重用视图模型,例如在不同的界面中使用相同的视图模型。

在这里插入图片描述

可以看出,用户输入信息,到Controller,然后反馈到ViewModel,它与View之间采用双向绑定。

3.后端相关

3.1 同步与异步

同步:同时,填入若干数据,点击submit提交,之前的数据就没了,页面停在此处,等待后端的响应;

异步:不同时,Ajax异步的方式,比如边看视频边评论;

Java网络开发(Asynchronous异步)—— 从 Jsp 到 Ajax 的 axios 到 vue & 同步请求 到 异步请求

异步 JavaScript 和 XML,或 Ajax 本身不是一种技术,而是一种将一些现有技术结合起来使用的方法,包括:HTML 或 XHTML、CSS、JavaScript、DOM、XML、XSLT、以及最重要的 XMLHttpRequest 对象。当使用结合了这些技术的 Ajax 模型以后,网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载(刷新)整个页面。这使得程序能够更快地回应用户的操作。

尽管 Ajax 中的 X 代表 XML,但是 JSON 才是首选,因为它更加轻量,而且是用 JavaScript 编写的。在 Ajax 模型中,JSON 和 XML 都被用来包装信息。

在这里插入图片描述

3.2 Controller层

  • @Controller @Service @Repository @Configuration @ Component 表示在spring的容器中

  • @RequestMapping

    • Restful风格的开发
      • GetMapping:查询,幂等的
      • PostMapping:修改 非幂等的 【在实际是很麻烦的】
      • DeleteMapping:删除 幂等的,对原来的数据没啥影响【其实不会真的删除,只是不显示了,比如置为false】
      • PutMapping:添加 幂等的
  • 幂等性

    • 多次请求,结果一致

3.3 Service层:要加事务@Transactional

事务管理@Transactional

  • 什么是事务?

    多条SQL,一次执行,要么都成功,要么都失败,要可以回滚

事务四大特性有

  • 原子性:事务下的操作要么全部成功,要么全部回滚

  • 一致性:事务前后数据库都要处于一致状态(转账前后两个账户的总金额一致)

  • 持久性:事务对数据的修改是持久的(即使数据库文件损坏也可通过日志等恢复)

  • 隔离性:多事务并发访问时可能会造成数据安全问题,需要把事务隔离起来(加锁)

事务的特性:

  • 隔离性

  • 原子性:不能再分割

    int a = 0;

    a++; 不是原子性的

在这里插入图片描述

​ 之前的线程过来看见的a是1,然后计算a=a+1,结果还没有返回,此时第二个线程过来,看见的还是1,此时,就会有两个2;

​ a–:不是原子的,比如买东西本来限量有100,就会有其中的1个卖给了两个2人,

  • 一致性
  • 持久性

Maven是啥?项目管理

Maven 翻译为"专家"、“内行”,是 Apache 下的一个纯 Java 开发的开源项目。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。

Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。

Maven 也可被用于构建和管理各种项目,例如 C#,Ruby,Scala 和其他语言编写的项目。Maven 曾是 Jakarta 项目的子项目,现为由 Apache 软件基金会主持的独立 Apache 项目。

Maven 构建生命周期

Maven 构建生命周期定义了一个项目构建跟发布的过程。

一个典型的 Maven 构建(build)生命周期是由以下几个阶段的序列组成的:

在这里插入图片描述

阶段处理描述
验证 validate验证项目验证项目是否正确且所有必须信息是可用的
编译 compile执行编译源代码编译在此阶段完成
测试 Test测试使用适当的单元测试框架(例如JUnit)运行测试。
包装 package打包创建JAR/WAR包如在 pom.xml 中定义提及的包
检查 verify检查对集成测试的结果进行检查,以保证质量达标
安装 install安装安装打包的项目到本地仓库,以供其他项目使用
部署 deploy部署拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程

在这里插入图片描述

1.clean:清理,test:测试,compile:编译

clean清理target里面的内容,compile重新编译;

2.package:打包,打包成jar包和使用

(1)引入maven插件

<!--    构建-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

(2)打包jar包和使用

在这里插入图片描述

直接运行一个jar包

java -jar springboot-hello-1.0-SNAPSHOT.jar

在这里插入图片描述

Spring Boot Reference Documentation

在这里插入图片描述

完整的pom文件

<?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>

    <groupId>com.tianju.bm</groupId>
    <artifactId>book-mall-v1.0</artifactId>
    <version>1.0-SNAPSHOT</version>
<!--    项目打包成jar包-->
    <packaging>jar</packaging>
<!--    项目描述-->
    <description>在线买书v1.0版本</description>

<!--    版本定义-->
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!--        写版本号-->
        <project.druid.version>1.2.18</project.druid.version>
        <project.mybatis.version>2.3.1</project.mybatis.version>
        <project.mybaitsPlus.version>3.5.3.1</project.mybaitsPlus.version>
        <project.knife.version>4.0.0</project.knife.version>
    </properties>

<!--    起步依赖-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.13</version>
    </parent>

<!--    依赖-->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

<!--        阿里数据源-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>${project.druid.version}</version>
        </dependency>

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>${project.mybatis.version}</version>
        </dependency>

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>${project.mybaitsPlus.version}</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
<!--            TODO:这里能写scope,test吗-->
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>

<!--        接口测试工具-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>${project.mybaitsPlus.version}</version>
        </dependency>

        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-openapi2-spring-boot-starter</artifactId>
            <version>${project.knife.version}</version>
        </dependency>


    </dependencies>

<!--    构建-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>



</project>

3.deploy:部署,关于部署到私服

在这里插入图片描述

项目打包成jar包,并且存到私服,之后就可以在depenency里面引入

在这里插入图片描述

存到私服里面就长这样

在这里插入图片描述

夯实基础,拔高项目

在这里插入图片描述

静态资源用NGNIX反向代理

缓存问题Redis,请求数据库

MQ中间件,消峰,

解耦,另外的服务器MQ解耦

查询的效率问题,模糊的智能检索,ES,也是缓存,全文检索

MySQL的主从,多个数据库,分表分库,主从分离,负载均衡

在这里插入图片描述

SpringBoot项目

https://spring.io/projects/spring-boot#overview

在这里插入图片描述

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”.

We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need minimal Spring configuration.

If you’re looking for information about a specific version, or instructions about how to upgrade from an earlier release, check out the project release notes section on our wiki.

Features

  • Create stand-alone Spring applications
  • Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files) WAR(WEB项目) JAR(java项目,更通用)
  • Provide opinionated ‘starter’ dependencies to simplify your build configuration 比如spring-boot-starter-parent
  • Automatically configure Spring and 3rd party libraries whenever possible 第三方的库
  • Provide production-ready features such as metrics, health checks, and externalized configuration
  • Absolutely no code generation and no requirement for XML configuration 不再需要XML文件了

项目开发过程中,为什么要使用XML文件?

软件解耦,----> 使用注解代替XML文件,@ ----> 注解的底层用的是java的反射

官方文档

https://docs.spring.io/spring-boot/docs/2.7.12/reference/htmlsingle/#legal

在这里插入图片描述

新建Maven项目

https://maven.apache.org/

在这里插入图片描述

Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project’s build, reporting and documentation from a central piece of information.

项目的全周期管理工具:

  • 创建
  • 仓库
  • 编译
  • 运行
  • 打包
  • 部署
  • 测试

竞争对手:Gradle:Android 这个是java写的

POM:project object model

maven是啥?

https://mvnrepository.com/

在这里插入图片描述

<!-- https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot-starter -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.2.9</version>
</dependency>

在这里插入图片描述

第三方库
Apache Druid是一个实时分析型数据库,旨在对大型数据集进行快速的查间分析('QLAP"查间)。Druid最常被当做数据库来用以支持实时摄取、高性能查问和高稳定运行的应用场景,同时,Du也通常被用来助力分析型应用的图形化界面,或者当做需要快速聚合的高并发后端API,Druid最适合应用于面向事件类型的数据。

在这里插入图片描述

properties是干啥的:记录依赖的版本号,使用${引入版本}

好处:可以直接在这里还版本号,就不用从下面找:

在这里插入图片描述

在这里插入图片描述

项目的结构

在这里插入图片描述

真实项目中有三种环境

  • 开发环境 dev
  • 测试环境 test
  • 生产环境 prod 上线环境

在这里插入图片描述

在这里插入图片描述

没有配置mybatis导致的报错

在这里插入图片描述

@SpringBootApplication 的 exclude

package com.tianju.springboot;

import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;

@SpringBootApplication(
        exclude = {
        // 排除掉mybatis相关配置的自动装载 @EnableAutoConfiguration
        DruidDataSourceAutoConfigure.class,
        DataSourceAutoConfiguration.class}
)
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class);
    }
}

在这里插入图片描述

druid连接数据库

以前是每次连接,都建立,连接完就断开;

现在是创建多个数据源,用完后不是断开,是把连接放回到连接池里面;

在这里插入图片描述

server:
  port: 9090

# 1.连接数据库——对应之前 xml文件的数据库
spring:
  datasource:
    druid:
      url: druid.url=jdbc:mysql://127.0.0.1:3306/community?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
      username: root
      password: 123

banner.text

https://www.bootschool.net/ascii-art/search

在这里插入图片描述

    |\__/,|   (`\
  _.|o o  |_   ) )
-(((---(((--------
server:
  port: 9090

# 1.连接数据库——对应之前 xml文件的数据库
spring:
  # 启动时的图标
  banner:
    charset: utf-8
    location: classpath:./banner.txt

在这里插入图片描述

Maven项目管理

1.clean:清理,test:测试,compile:编译

clean清理target里面的内容,compile重新编译;

2.package:打包,打包成jar包和使用

(1)引入maven插件

<!--    构建-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

(2)打包jar包和使用

在这里插入图片描述

直接运行一个jar包

java -jar springboot-hello-1.0-SNAPSHOT.jar

在这里插入图片描述

关于测试

1.单元测试@RunWith(SpringJUnit4ClassRunner.class)

导包

<!--        springboot test-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>

		<dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
<!--            表示在测试的时候有效-->
            <scope>test</scope>
        </dependency>

配置yml文件

server:
  port: 9090

# 1.连接数据库——对应之前 xml文件的数据库
spring:
  # 启动时的图标
  banner:
    charset: utf-8
    location: classpath:./banner.txt

  datasource:
    druid:
#      type: com.alibaba.druid.pool.DruidDataSource
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://127.0.0.1:3306/mybatis?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
      username: root
      password: 123
mybatis:
  # 给所有的实体类起别名
  type-aliases-package: com.tianju.springboot.entity
  # 扫描mapper的地方
  mapper-locations: classpath:/mapper/*Mapper.xml
  configuration:
    # 开启日志,可以看到SQL语句
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

在这里插入图片描述

进行测试

package com.tianju.springboot.service.impl;

import com.tianju.springboot.service.IEmpService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import static org.junit.Assert.*;
@SpringBootTest
@RunWith(SpringJUnit4ClassRunner.class)
public class EmpServiceImplTest {

    @Autowired
    private IEmpService empService;

    @Test
    public void queryAll() {
        System.out.println(empService.queryAll());
    }
}

在这里插入图片描述

2.controller测试

生成访问链接

在这里插入图片描述

在这里插入图片描述

排除tomcat用netty或jetty

springboot内置服务器默认是tomcat,应为引入的spring-boot-starter-web中依赖了spring-boot-starter-tomcat,当然也可以手动关闭依赖使用别的服务器

在这里插入图片描述

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
<!--            TODO:把tomcat排除在外,用netty -->
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

<!--        引入netty-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-reactor-netty</artifactId>
        </dependency>

        <!--引入jetty服务-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jetty</artifactId>
        </dependency>

Netty和Jetty的区别

以下参考自:

Netty和Jetty的区别_Trishar的博客-CSDN博客

1.网络通信框架和web容器的区别

  • 网络通信框架:Netty、Mina、Grizzly
  • web容器:Tomcat、Jetty
  • web服务器:Apache、Nginx

2.概念区别

  • Netty针对Socket

    • Netty是异步的。如果服务调用端需要同步等待调用结果,则需要自己实现同步等待机制。
  • Jetty/Tomcat针对Servlet

3.应用范围上:

  • HTTP服务用Jetty
  • 即时通信用Netty

4.协议

  • Netty:TCP/IP协议
    • 半包/粘包问题(可以通过选择合适的序列化协议解决)
  • Jetty:HTTP协议

5.总结

NettyJetty
实质网络通信框架NIOWeb容器
针对SocketServlet
协议TCP/IPHTTP
应用即时通信HTTP服务

总结

1.追根溯源,servlet是啥,tomcat是啥,maven是啥;
2.前后端开发模式,mvc,mvvc,service层的事务;
3.maven对项目全生命周期的管理,打包jar包和运行;
4.springBoot项目的搭建,pom文件,项目结构,项目环境;
5.Druid连接数据库,管理连接,springBootApplication的exclude;
6.banner.text的使用,比较好玩;
7.单元测试和controller的接口测试;
8.排除tomcat,使用netty或jetty,以及两者的区别;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

阐述kubernetes部署:基础设施安装

基础设施部署 持久卷的建立 请参考&#xff1a;《持久卷的建立》 elasticsearch部署 一、设置远程扩展字典 不使用自定义字典请忽略此步骤 首先更改ES中IK插件的配置&#xff1a; vi/opt/kubernetes/es/IKAnalyzer.cfg.xml 按您的实际设置的秘钥配置secret_value&#xff1a; …

华为配置LLDP基本功能

华为配置LLDP基本功能 1.什么是lldp协议 定义 LLDP(Link Layer Discovery Protocol)是IEEE 802.1ab中定义的链路层发现协议。LLDP是一种标准的二层发现方式,可以将本端设备的管理地址、设备标识、接口标识等信息组织起来,并发布给自己的邻居设备,邻居设备收到这些信息后将…

git提交只单个或者某几个文件的指令

git status --查看目前本地和远程仓库的差异&#xff1b; git add --提交某的文件&#xff0c;多次执行可以提交多个文件 文件名称替换 git stash -u -k --其他文件保留到本地暂存区&#xff0c;不进行提交 git commit -m ---针对本次修改添加注释并提交到远程仓库 gi…

在安卓手机搭建kali环境,手机变成便携式渗透神器

简介 kali是著名的黑客专用系统&#xff0c;一般都是直接装在物理机或者虚拟机上&#xff0c;我们可以尝试把kali安装在手机上&#xff0c;把手机打造成一个便携式渗透神器。 我们需要下载以下3款软件&#xff1a; (1).Termux(终端模拟器) (2).AnLinux(里边有各种安装liunx…

从零实现深度学习框架——带Attentiond的Seq2seq机器翻译

引言 本着“凡我不能创造的,我就不能理解”的思想,本系列文章会基于纯Python以及NumPy从零创建自己的深度学习框架,该框架类似PyTorch能实现自动求导。 要深入理解深度学习,从零开始创建的经验非常重要,从自己可以理解的角度出发,尽量不使用外部完备的框架前提下,实现我…

学校公寓管理系统/基于微信小程序的学校公寓管理系统

摘 要 社会的发展和科学技术的进步&#xff0c;互联网技术越来越受欢迎。手机也逐渐受到广大人民群众的喜爱&#xff0c;也逐渐进入了每个学生的使用。手机具有便利性&#xff0c;速度快&#xff0c;效率高&#xff0c;成本低等优点。 因此&#xff0c;构建符合自己要求的操作…

ChatGPT训练流程

图源&#xff1a;State of GPT - Microsoft Build 笔者翻译上图如下&#xff1a; 阶段子阶段目标备注Pre-Training--------语言建模Instruction Finetuning---------让模型能够理解自然语言指令RLHFReward Modeling奖励建模&#xff0c;用来代替人工打分&#xff0c;降低标注…

5G理论概述

文章目录 SA组网架构及协议栈4-5G核心网侧融合交互5G网络网元和设备类型&#xff0c;接口1、AMF(Access and Mobility Management Function)&#xff0c;接入和移动管理功能2、SMF&#xff08;Session Management function&#xff09;&#xff0c;会话管理功能3、AUSF&#xf…

2023数学建模国赛常用算法-Topsis优劣解距离法

更多国赛数学建模资料思路&#xff0c;关注文末&#xff01; 1 优劣解距离法&#xff08;TOPSIS&#xff09;简介 1.1 概念 TOPSIS 法是一种常用的组内综合评价方法&#xff0c;能充分利用原始数据的信息&#xff0c;其结果能精确地反映各评价方案之间的差距。基本过程为基于…

多路转接高性能IO服务器|select|poll|epoll|模型详细实现

前言 那么这里博主先安利一下一些干货满满的专栏啦&#xff01; Linux专栏https://blog.csdn.net/yu_cblog/category_11786077.html?spm1001.2014.3001.5482操作系统专栏https://blog.csdn.net/yu_cblog/category_12165502.html?spm1001.2014.3001.5482手撕数据结构https:/…

AppSpider Pro 7.4.053 for Windows - Web 应用程序安全测试

AppSpider Pro 7.4.053 for Windows - Web 应用程序安全测试 Rapid7 Dynamic Application Security Testing (DAST) 请访问原文链接&#xff1a;https://sysin.org/blog/appspider/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin…

微信小程序学习之数据绑定,事件绑定,事件传参与数据同步的学习记录

数据绑定&#xff0c;事件绑定&#xff0c;事件传参与数据同步 1. 数据绑定1.1. 在data中定义数据1.2. 在wxml中渲染数据 &#xff08;mustache语法&#xff09; 2. 事件绑定2.1. 事件2.2. 常用的事件2.3. 事件对象的属性列表2.4. target 和 currentTarget的区别 3. 事件传参与…

基于LLM大模型开发Web App生成器

随着越来越多的代码生成模型公开可用&#xff0c;现在可以以我们以前无法想象的方式进行文本到网络甚至文本到应用程序。 本教程介绍了一种通过流式传输和渲染内容来生成 AI Web 内容的直接方法。 推荐&#xff1a;用 NSDT设计器 快速搭建可编程3D场景。 1、在 Node 应用程序中…

按日,周,年统计,无的数据补充0

需求&#xff1a;按日-周-年统计。统计涉及到3张表数据。 写sql。先把3张表数据摘取出来&#xff0c;只需对3张表的时间做分组统计即可。 按日统计 select DAY(dateff) as time,IFNULL(count(id),0)as num from(select create_time as dateff,id as id from cz_taxi_orders…

通过列排斥能比较两组迭代次数

( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 让网络的输入只有3个节点&#xff0c;AB训练集各由6张二值化的图片组成&#xff0c;让差值结构中有6个1, 行分布是0&#xff0c;1&#xff0c;1&#xff0c;1&#xff0c;1&#xff0c;2列分布是2&#xff0c;2&#xff0c;2.统计迭代次…

【单片机】msp430f5529 万年历,数字时钟,矩阵键盘修改时间,7针OLED显示,内部温度读取

文章目录 功能实物图原理图一些程序片段矩阵键盘内部温度读取将年月日转为星期 功能 1 显示万年历&#xff0c;利用内部RTC模块 2 按键修改时间 3 显示芯片内部的温度数值 实物图 原理图 一些程序片段 矩阵键盘 https://qq742971636.blog.csdn.net/article/details/1316505…

OpenCV使用ellipse()函数来绘制一个椭圆

/*** void ellipse(* InputOutputArray img, // 图像* Point center, // 椭圆原心* Size axes, // 椭圆x轴长度的一半,y轴长度的一半* double angle, // 椭圆旋转角度* double startAngle, // 起始角度* double endAngle, // 终止角度* const Scalar& color, // 椭圆颜色*…

Hexo博客部署腾讯云服务器

✅作者简介&#xff1a;大家好&#xff0c;我是Cisyam&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Cisyam-Shark的博客 &#x1f49e;当前专栏&#xff1a; 前端相关 ✨特色专栏&…

华为Harmony应用开发初探

HarmonyOS是一款面向万物互联时代的、全新的分布式操作系统。在传统的单设备系统能力基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持手机、平板、智能穿戴、智慧屏、车机等多种终端设备,提供全场景(移动办公、运动健康、社交通信、媒体…

<Linux开发>驱动开发 -之- Linux I2C 驱动

&#xff1c;Linux开发&#xff1e;驱动开发 -之- Linux I2C 驱动 交叉编译环境搭建&#xff1a; &#xff1c;Linux开发&#xff1e; linux开发工具-之-交叉编译环境搭建 uboot移植可参考以下&#xff1a; &#xff1c;Linux开发&#xff1e; -之-系统移植 uboot移植过程详细…