搭建Springboot的基础开发框架-01

本系列专题虽然是按教学的深度来定稿的,但在项目结构和代码组织方面是按公司系统的要求来书定的。在本章中主要介绍下基础开发框架的功能。后续所有章节的项目全是在本基础框架的基础上演进的。

工程结构介绍

在这里插入图片描述

  • SpringbootSeries:父工程,定义一个通用pom.xml,主要用于版本管理;
  • Framework:子工程组,包含两个Modules,主要是一些框架底层开发jar包;
  • Springboot:子工程组,基于Springboot的项目,主要是集成不同的开发框架,比如springboot+mybatis等;
  • Springcloud:子工程组,基于官方Springcloud的项目,主要是集成微服务组件,比如Gateway网关,Ribbon负载均衡等;
  • Alibaba Springcloud:子工程组,功能同Springcloud工程组差不多,主要是用阿里巴巴发展的组件实现微服务各功能部件,比如Nacos注册中心等;

运行与测试

因采用了父子结构,所以在本地运行相应模块的SpringbootXxxxApplication.java启动类之前,首先:

安装Maven基础模块

  1. 先在springbootSeries模块(即最外层的父工程)中执行mvn install,把pom.xml缓存到本地maven缓存库中;
    在这里插入图片描述
  2. 再依次在framework-commonsframework-persistence模块中执行mvn install,缓存通用jar包到本地maven缓存库中;

如果不需要修改上述三个模块的源码,则在本地只需执行一次mvn install命令即可,需要注意的是以上三个模块的执行顺序不能弄错,先springbootSeries–>framework-commons–>framework-persistence

三方插件服务启动

某些模块需要其它三方插件来辅助运行,现把启动方式罗列在些,以方便查找:

# 启动Nacos,访问地址:http://localhost:8848/nacos
sh startup.sh -m standalone  

# 启动Consul,访问地址:http://127.0.0.1:8500/
consul agent -dev

# 启动Redis
redis server

# 启动sentinel dashboard,访问地址 http://localhost:9999
java -Dserver.port=9999 -Dcsp.sentinel.dashboard.server=localhost:9999 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.7.jar

启动Springboot服务

一般只需要执行位于`com.korgs.SpringbootXxxxxApplication.java’路径下的SpringbootApplication启动类,即可运行相应模块服务。
在这里插入图片描述

测试Springboot服务

在这里笔者建议采用 Swagger3 来进行测试,因为 Swagger3 服务已事先集成到了framework-commons模块中,同时为了方便,在每个模块的SpringbootXxxxxApplication.
java类中都定义了一个名为 http://localhost:18080/helloworld 的测试Restful接口。Swagger-UI访问地址如下:

  • http://localhost:18080/swagger-ui.html

在这里插入图片描述

18080是应用开放的端口,通过application.properties文件的server.port=18080属性定义

如果涉及多个springboot配置文件的模块,在Idea中可以在启动配置对话框中添加Springboot,然后在配置界面勾选程序实参,最后配置–spring.profiles.active=serverBackup,以指定不同springboot的profile配置文件

基础框架项目集说明

SpringbootSeries父工程

版本依赖说明

类别必选可选
基础框架jdk 17+(采用20, 21等也同样适用)
spring-boot-starter 3.2.4
spring-boot-starter-web 3.2.4
spring-cloud 2023.0.1
spring-cloud-alibaba 2023.0.1.0
数据库mybatis-plus-spring-boot3-starter 3.5.6
druid-spring-boot-starter 1.2.22
mysql-connector-java 8.0.33
工具包cn.hutool 5.8.27
org.projectlombok 1.18.30
org.mapstruct 1.5.5.Final
mapstruct-processor 1.5.5.Final
framework-commons 1.0-SNAPSHOT
日志slf4j 2.0.12
logback 1.4.14
测试spring-boot-starter-test 3.2.4
springdoc-openapi-starter-webmvc-ui 2.4.0
spring-boot-starter-actuator 3.2.4 : runtime
spring-boot-devtools 3.2.4

Maven scope属性说明

scope编译测试运行打包特殊说明
compile
runtimex
testxxx
systemx不依赖maven仓库,而是本地的jar包,不具备传递性
providedxx不具备传递性
importxxxx只能在 dependencyManagement下使用,且 type 需要为 pom,解决单继承问题

pom.xml源码

在本地测试时,需要把<modules>中的子模块做适当删减。

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

    <!--指定父工程:
            1、其版本兼容情况可从:
               https://spring.io/projects/spring-cloud 或
               https://github.com/spring-cloud/spring-cloud-release/releases 上查询
            2、springboot项目也可以用官方的工具生成
                https://start.spring.io
        -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.2.4</version>
        <relativePath/> <!--如果子工程出现parent.relativePath问题,需要加入这么一行-->
    </parent>

    <!--此工程声明为pom形式,供其它子模块引用-->
    <groupId>com.korgs</groupId>
    <artifactId>springbootSeries</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <!--子模块,一般为空,只在开发调试时建议放入一些子模块,为了便捷-->
    <modules>
        <module>springboot-base</module>
        <module>framework-commons</module>
        <module>framework-persistence</module>
        <module>springboot-web</module>
    </modules>

    <properties>
        <!--设置javaSDK版本:语言级别要一致,然后匹配下idea中的在maven编译设置
            JDK 21 = 65 JDK 17 = 61  JDK 8 = 52
         -->
        <java.version>17</java.version>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <spring-cloud.version>2023.0.1</spring-cloud.version>
        <spring-cloud-alibaba.version>2023.0.1.0</spring-cloud-alibaba.version>

        <!--开发中用到的三方工具包-->
        <hutool.version>5.8.27</hutool.version>
        <lombok.version>1.18.30</lombok.version>
        <lombok.mapstruct.binding.version>0.2.0</lombok.mapstruct.binding.version>
        <mapstruct.version>1.5.5.Final</mapstruct.version>
        <framework-commons.version>1.0-SNAPSHOT</framework-commons.version>

        <!--db-mysql-->
        <mybatisplus.version>3.5.6</mybatisplus.version>
        <druid.version>1.2.22</druid.version>
        <mysql.version>8.0.33</mysql.version>

        <!--测试相关-->
        <junit.test.version>4.13.2</junit.test.version>
        <openapi.restfultest.version>2.5.0</openapi.restfultest.version>
    </properties>

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

        <!--springboot辅助工具-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!--工具类,前提是必须先给IDEA安装Lombok插件-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>${lombok.version}</version>
            <scope>annotationProcessor</scope>
        </dependency>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>${hutool.version}</version>
        </dependency>

        <dependency>
            <groupId>com.korgs</groupId>
            <artifactId>framework-commons</artifactId>
            <version>${framework-commons.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springdoc</groupId>
            <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
            <version>${openapi.restfultest.version}</version>
        </dependency>

    </dependencies>

    <!--可选依赖,这块的依赖不建议放太多-->
    <dependencyManagement>
        <dependencies>
            <!--springboot-main:引入spring cloud的依赖,主要用来管理Spring Cloud生态各组件的版本-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!--alibaba-springboot-main:引入spring cloud的依赖,主要用来管理alibaba Spring Cloud生态各组件的版本-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!--数据库相关-->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
                <version>${mybatisplus.version}</version>
            </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysql.version}</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid-spring-boot-starter</artifactId>
                <version>${druid.version}</version>
            </dependency>

            <!--工具类-->
            <dependency>
                <groupId>org.mapstruct</groupId>
                <artifactId>mapstruct</artifactId>
                <version>${mapstruct.version}</version>
            </dependency>
            <dependency>
                <groupId>org.mapstruct</groupId>
                <artifactId>mapstruct-processor</artifactId>
                <version>${mapstruct.version}</version>
            </dependency>

            <!--测试类-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
                <scope>runtime</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>${maven.compiler.source}</source>
                    <target>${maven.compiler.target}</target>
                    <encoding>${project.build.sourceEncoding}</encoding>
                    <annotationProcessorPaths>
                        <path>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                            <version>${lombok.version}</version>
                        </path>
                        <path>
                            <groupId>org.mapstruct</groupId>
                            <artifactId>mapstruct-processor</artifactId>
                            <version>${mapstruct.version}</version>
                        </path>
                        <!-- additional annotation processor required as of Lombok 1.18.30 -->
                        <path>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok-mapstruct-binding</artifactId>
                            <version>${lombok.mapstruct.binding.version}</version>
                        </path>
                    </annotationProcessorPaths>
                </configuration>
            </plugin>

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

</project>

Framework子工程组

这个工程中一共包含两个子模块, framework-persistence依赖framework-commons,framework-commons也可以单独引用。

  • framework-commons:springboot框架底层功能封装;
  • framework-commons:mybatis数据库操作相关底层功能封装;

framework-commons模块

此模块主要是一些工具类
在这里插入图片描述

  • 日志相关

    • AccessLogInterceptor.java:web日志拦截器
    • InterceptorRegister.java:拦截器注册类
    • LogGenerator.java:日志工具类
  • Restful相关

    • BaseResponse.java:基础restful响应对象
    • ListResponse.java:继承BaseResponse.java,集合响应对象
    • PageResponse.java:继承ListResponse.java,分页响应对象
    • FileResponse.java:文件响应对象
    • ResponseConst.java:响应常量类
  • Servlet相关

    • CorsConfig.java:跨域设置过滤器
  • 工具类

    • TranslatorUtil.java:对象转换工具类
    • UUIDUtil.java:ID生成器

framework-persistence模块

数据持久化操作相关,暂时只封装了mybatis插件
在这里插入图片描述

  • 底级框架封装

    • DBEntity.java:数据实体基础类
    • DBMetaObjectHandler.java:数据实体基础操作类
    • MybatisPlusConfig.java:mybatis操作配置,主要集成了分页插件
  • 分页数据对象相关

    • PageParam.java:用于Controller层的分页查询参数对象
    • PageQueryBo.java:用于Service层的分页查询参数对象
    • PageBo.java:用于Service层的分页结果
    • PageUtil.java:分页工具类

Springboot子工程组

springboot-base模块

此模块采用了maven独立配置,与父模块没有任何关系,只是为了说明如何简单的实现sprinboot应用,但可以由springbootSeries父模块进行管理。
在这里插入图片描述

pom.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>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.2.4</version>
        <relativePath/> <!--如果子工程出现parent.relativePath问题,需要加入这么一行-->
    </parent>

    <groupId>com.korgs</groupId>
    <artifactId>springboot-base</artifactId>
    <description>一个最基础的springboot工程框架</description>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

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

</project>

注意:pring-boot-maven-plugin必须配置,否则用maven -clear package打包后的jar包无法用 java -jar xxx.jar来启动,原因是不包含依赖项。

application.properties配置

本次专题Springboot配置采用了两个文件,一个用于个性化配置(名称为application-.properties),另一个用于基础配置(名称为application-dev.properties)。

  • application.properties 个性化配置,每个项目的配置都不一样
spring.profiles.active = dev
spring.application.name=springbootBase
server.port=18080
  • application-dev.properties 基本配置,这里的配置在任何项目中基本不会变化
#springboot Server
spring.aop.auto=true
spring.aop.proxy-target-class=true

# log4j
logging.level.root=INFO
logging.level.org.springframework.web=ERROR

#restful Server
server.compression.enabled=true
server.compression.mime-types=application/json,application/octet-stream
Restful Controller实现

实现一个简单的Restful测试类,返回hello world字符串,测试地址为:http://localhost:18080/helloworld

@RestController
public class HelloWorldController {
    private static final Log log = LogFactory.getLog(HelloWorldController.class);

    @GetMapping("/helloworld")
    public String helloWorld(){
        log.info("I am busy to handle this request.");
        return "hello world";
    }
}

springboot-web 模块

此模块的父模块为 springbootSeries。此模块的代码可以做为一个模板工程,如果想开发新的工程时可以复制一份,然后修改部分配置即可,省去了从头写代码的麻烦。也可以仿照笔者 构建RPC开发脚手架 中的实现写一个小工具。
在这里插入图片描述

  • OpenAPIConfig:swagger3测试框架组件,详细可参考文章最后的源码
  • SpringbootWebApplication:springboot启动类
@Slf4j
@SpringBootApplication(scanBasePackages = {"com.korgs",  "cn.hutool.extra.spring"})
@Configuration
@EnableConfigurationProperties
@ServletComponentScan
@RestController
public class SpringbootWebApplication {

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

	@GetMapping("/helloworld")
	public BaseResponse helloWorld(){
		log.info(LogGenerator.trackLog()
				+ "msg="+ "I am busy to handle this request.");
		return BaseResponse.success("hello world");
	}
}

说明:上述代码的配置中只有@SpringBootApplication注解是必须的,其它的只是为了后续开发方便直接就加注上了。

pom.xml

因为基础配置已经从springbootSeries父模块继承了,所以在本pom.xml中只配置maven坐标就可以了。

<?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>
    <parent>
        <groupId>com.korgs</groupId>
        <artifactId>springbootSeries</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <artifactId>springboot-web</artifactId>
    <description>带有日志和基础组件的springbootweb工程</description>
    <packaging>jar</packaging>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

</project>

application.properties配置

  • application.properties 个性化配置,每个项目的配置都不一样
spring.profiles.active = dev
spring.application.name=springbootWeb
server.port=18081

# 用于actuator插件分析
management.endpoints.web.exposure.include = *
management.endpoint.health.show-details=always
  • application-dev.properties 基本配置,这里的配置在任何项目中基本不会变化,后续章节不再给出了。
#springboot Server config
spring.aop.auto=true
spring.aop.proxy-target-class=true

# log4j config
logging.config=classpath:log4j2.xml
logging.level.root=INFO
logging.level.org.springframework.web=ERROR

#restful Server config
server.compression.enabled=true
server.compression.mime-types=application/json,application/octet-stream

#swagger-ui config
springdoc.api-docs.enabled=true
springdoc.api-docs.path=/api-schema

swagger-config.group = default-group
swagger-config.description= The following is a restful-api list of {} application, and you can browse or test them to determine if they are working as you expect.
swagger-config.version=V1.0
swagger-config.urlPattern=/**
swagger-config.base-package=com.korgs
swagger-config.authorization-key-name=token
swagger-config.wiki = https://korgs.blog.csdn.net/

源码下载

涉及模块:

  • SpringbootSeries
  • framework-commons
  • framework-persistence
  • springboot-base:18080
  • springboot-web:18081

源码下载:

  • 基础框架源码下载

源码运行方法:

  • 模块详细功能说明和运行测试方法

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

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

相关文章

男士内裤品牌哪个好?口碑最好的男士内裤汇总

许多男士选内裤可能比较随意&#xff0c;但实际上作为长时间贴合身体皮肤的贴身衣物&#xff0c;经常会出很多汗。而普通的内裤会吸附很多汗水却不易干&#xff0c;导致细菌含量超标&#xff0c;摩擦力增强&#xff0c;容易造成破皮感染从而影响健康。 但是现在的男士内裤种类和…

Sentinel-Dashboard安装

1. Docker官方镜像 找到跟你版本相对于的镜像进行拉取&#xff1a; &#xfeff;https://hub.docker.com/r/bladex/sentinel-dashboard # 运行容器 Sentinel默认端口 8858 docker run --name sentinel-dashboard -p 8858:8858 -d bladex/sentinel-dashboard:1.8.6 &#xfeff…

【智能优化算法】野狗智能优化算法(Dingo Optimization Algorithm DOA)

野狗智能优化算法(Dingo Optimization Algorithm DOA)是期刊“MATHEMATICAL PROBLEMS IN ENGINEERING”的2021年智能优化算法 01.引言 野狗智能优化算法(Dingo Optimization Algorithm DOA)该算法的灵感来自野狗的狩猎策略&#xff0c;即迫害攻击&#xff0c;分组策略和清除行…

代码随想录算法训练营DAY46|C++动态规划Part8|139.单词拆分、多重背包理论基础、背包问题总结篇

文章目录 139.单词拆分思路CPP代码 多重背包理论基础处理输入把所有个数大于1的物品展开成1个开始迭代&#xff0c;计算dp数组代码优化 背包问题总结篇 139.单词拆分 力扣题目链接 文章讲解&#xff1a;139.单词拆分 视频讲解&#xff1a;你的背包如何装满&#xff1f;| LeetCo…

暗区突围联机不了联机失败无法联机的极速解决方法

暗区突围联机不了/联机失败/无法联机的极速解决方法 《暗区突围》是由腾讯魔方工作室群开发的第一人称射击类手游&#xff0c;于2021年8月17日进行先锋测试&#xff0c;并在2022年7月13日正式公测。《暗区突围》提供了双模式玩法&#xff0c;包括战术行动和伪装潜入&#…

QGraphicsView实现简易地图10『自适应窗口大小』

前文链接&#xff1a;QGraphicsView实现简易地图9『层级缩放显示底图』 自适应窗口大小 当地图窗口放大或缩小的时候&#xff0c;需要地图能够动态覆盖整个视口。 1、动态演示效果 2、核心代码 注&#xff1a;WHMapView继承自MapViewvoid WHMapView::resize() {if (m_curLev…

Day 26 数据库日志管理

数据库日志管理 一&#xff1a;日志管理 1.日志分类 ​ 错误日志 &#xff1a;启动&#xff0c;停止&#xff0c;关闭失败报错。rpm安装日志位置 /var/log/mysqld.log ​ 通用查询日志&#xff1a;所有的查询都记下来 ​ 二进制日志&#xff1a;实现备份&#xff0c;增量备份…

开发组合php+mysql 人才招聘小程序源码搭建 招聘平台系统源码+详细图文搭建部署教程

随着互联网的快速发展&#xff0c;传统的招聘方式已经不能满足企业和求职者的需求。为了提高招聘效率&#xff0c;降低招聘成本&#xff0c;越来越多的人开始关注人才招聘小程序、在线招聘平台。分享一个人才招聘小程序源码及搭建&#xff0c;让招聘更加高效便捷。系统是运营级…

什么是光伏发电?什么是分布式光伏系统?

一、光伏发电 光伏发电&#xff0c;作为一种可再生能源利用技术&#xff0c;其核心原理基于半导体的光生伏特效应。简而言之&#xff0c;光伏发电就是将太阳能直接转换为电能的过程。它由三个主要部分组成&#xff1a;太阳电池板&#xff08;组件&#xff09;、控制器和逆变器…

STM32F10x移植FreeRTOS

一、获取FreeRTOS源码 &#xff08;1&#xff09;登录FreeRTOS官网&#xff1a;www.freertos.org&#xff0c;下载第一个压缩包 &#xff08;2&#xff09;通过GitHub网站&#xff1a;github.com/FreeRTOS/FreeRTOS下载&#xff0c;由于该网站服务器在国外&#xff0c;所以访问…

回归预测 | Matlab实现基于CNN-SE-Attention-ITCN多特征输入回归组合预测算法

回归预测 | Matlab实现基于CNN-SE-Attention-ITCN多特征输入回归组合预测算法 目录 回归预测 | Matlab实现基于CNN-SE-Attention-ITCN多特征输入回归组合预测算法预测效果基本介绍程序设计参考资料 预测效果 基本介绍 【模型简介】CNN-SE_Attention结合了卷积神经网络&#xff…

好消息|5月6日起换发补发出入境证件可“全程网办”

国家移民管理局从2024年5月6日起&#xff0c;实施若干便民利企出入境管理的六项政策措施&#xff0c;包括在北京等20个城市试点实行换发补发出入境证件的“全程网办”&#xff0c;该举措对于访问学者、博士后研究人员及联合培养博士都是利好消息。故知识人网小编转载发布。 为更…

自动语音识别

⚠申明&#xff1a; 未经许可&#xff0c;禁止以任何形式转载&#xff0c;若要引用&#xff0c;请标注链接地址。 全文共计3077字&#xff0c;阅读大概需要3分钟 &#x1f308;更多学习内容&#xff0c; 欢迎&#x1f44f;关注&#x1f440;【文末】我的个人微信公众号&#xf…

恭喜发财!东方第一 MEME 拥抱符文

第 431 号符文 HOPE•YOU•GET•RICH &#x1f9e7;&#xff0c;是 Omnity 首个支持的跨链 Runes 资产&#xff0c;也是TG群里红包小程序支持的第一个 Runes 资产。 大家可以在 Omnity 的 TG 群和 RunesCC 的 TG 群里&#xff0c;不定时的抢到符文红包。 Omnity TG&#xff1a;…

Git系列:git push (-u) 与 git branch (-u)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

W801学习笔记二十二:英语背单词学习应用——下

续上篇&#xff1a; W801学习笔记二十一&#xff1a;英语背单词学习应用——上 五、处理用户交互 由于英语也是采用了和唐诗一样的《三分钟限时挑战》《五十题竞速挑战》《零错误闯关挑战》&#xff0c;所以用户交互的逻辑和唐诗是一样的。所以&#xff0c;我们抽一个基类&a…

热敏电阻怎么进行性能测试?并以LabVIEW为例进行说明

过程也可用于执行热敏电阻测量。RTD和热敏电阻遵循非常相似的功能原理&#xff0c;测量步骤与下面提供的步骤相同。有关热敏电阻的更多信息&#xff0c;请参阅本文档。 查找设备引脚排列 在连接任何信号之前&#xff0c;请找到您的设备引脚排列。 打开NI MAX并展开设备和接口。…

ETLCloud工具怎么实现多流SQL实时运算?

多流SQL实时运算的特点和应用场景 多流SQL实时运算是一种先进的数据处理技术&#xff0c;它在大数据处理领域中扮演着至关重要的角色&#xff0c;尤其是在需要对多个数据流进行实时分析和处理的应用场景中。该技术结合了SQL&#xff08;结构化查询语言&#xff09;的易用性和流…

【计算机毕业设计】基于SSM++jsp的网络游戏公司官方平台系统【源码+lw+部署文档+讲解】

目录 第1章 绪论 1.1 课题背景 1.2 课题意义 1.3 研究内容 第2章 开发环境与技术 2.1 MYSQL数据库 2.2 JSP技术 2.3 SSM框架 第3章 系统分析 3.1 可行性分析 3.1.1 技术可行性 3.1.2 经济可行性 3.1.3 操作可行性 3.2 系统流程 3.2.1 操作流程 3.2.2 登录流程 3.2.3 删除信息流…

Redis 入坑基本指南

引言 本指南将帮助您了解如何安装、配置和基本使用 Redis。Redis 是一款开源的高性能键值存储系统&#xff0c;可用于缓存、数据库、消息中间件等多种用途。 1. 安装 Redis a. 下载 Redis&#xff1a; 可以从 Redis 官方网站&#xff08;https://redis.io&#xff09;下载最…