1. 项目搭建

1.1 创建父工程

1.1.1 创建xuecheng-plus-project工程

1.1.2 导入依赖

<?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 https://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.5.3</version><relativePath/> <!-- lookup parent from repository --></parent><packaging>pom</packaging><groupId>com.xuecheng</groupId><artifactId>xuecheng-plus-parent</artifactId><version>0.0.1-SNAPSHOT</version><name>xuecheng-plus-parent</name><description>xuecheng-plus-parent</description><url/><licenses><license/></licenses><developers><developer/></developers><scm><connection/><developerConnection/><tag/><url/></scm><properties><java.version>17</java.version></properties><dependencies><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>2.0.1</version></dependency><!-- JWT依赖 --><dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.12.3</version></dependency><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</artifactId></dependency><!--    redis--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><!--    mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.33</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-autoconfigure</artifactId></dependency><!--    druid--><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-3-starter</artifactId><version>1.2.23</version></dependency><!--    lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!--    mybatis-plus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>3.5.7</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</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></dependency><dependency><groupId>commons-lang</groupId><artifactId>commons-lang</artifactId><version>2.6</version></dependency><dependency><groupId>co.elastic.clients</groupId><artifactId>elasticsearch-java</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

1.1.3 创建Base工程

1.1.4 导入依赖

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.xuecheng</groupId><artifactId>xuecheng-plus-parent</artifactId><version>0.0.1-SNAPSHOT</version>
<!--        <relativePath/> &lt;!&ndash; lookup parent from repository &ndash;&gt;--><relativePath>../xuecheng-plus-parent</relativePath></parent><groupId>com.xuecheng</groupId><artifactId>xuecheng-plus-base</artifactId><version>0.0.1-SNAPSHOT</version><name>xuecheng-plus-base</name><description>xuecheng-plus-base</description><url/><licenses><license/></licenses><developers><developer/></developers><scm><connection/><developerConnection/><tag/><url/></scm><properties><java.version>17</java.version></properties>
<!--    <dependencies>-->
<!--        <dependency>-->
<!--            <groupId>org.springframework.boot</groupId>-->
<!--            <artifactId>spring-boot-starter</artifactId>-->
<!--        </dependency>--><!--        <dependency>-->
<!--            <groupId>org.springframework.boot</groupId>-->
<!--            <artifactId>spring-boot-starter-test</artifactId>-->
<!--            <scope>test</scope>-->
<!--        </dependency>-->
<!--    </dependencies>--><dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><dependency><groupId>commons-lang</groupId><artifactId>commons-lang</artifactId><version>2.6</version></dependency><!-- fastJson --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.76</version></dependency><!-- servlet Api 依赖 -->
<!--        <dependency>-->
<!--            <groupId>javax.servlet</groupId>-->
<!--            <artifactId>javax.servlet-api</artifactId>-->
<!--            <scope>provided</scope>-->
<!--        </dependency>--><!-- 通用组件 --><dependency><groupId>commons-lang</groupId><artifactId>commons-lang</artifactId></dependency><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.11</version></dependency><dependency><groupId>io.swagger</groupId><artifactId>swagger-annotations</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId></dependency>
<!--        <dependency>-->
<!--            <groupId>org.springframework.boot</groupId>-->
<!--            <artifactId>spring-boot-starter-validation</artifactId>-->
<!--        </dependency>-->
<!--        <dependency>-->
<!--            <groupId>org.springframework.boot</groupId>-->
<!--            <artifactId>spring-boot-starter-log4j2</artifactId>-->
<!--        </dependency>-->
<!--        &lt;!&ndash;根据扩展名取mimetype&ndash;&gt;-->
<!--        <dependency>-->
<!--            <groupId>com.j256.simplemagic</groupId>-->
<!--            <artifactId>simplemagic</artifactId>-->
<!--            <version>1.17</version>-->
<!--        </dependency>--><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId></dependency>
<!--        <dependency>-->
<!--            <groupId>com.google.zxing</groupId>-->
<!--            <artifactId>core</artifactId>-->
<!--            <version>3.3.3</version>-->
<!--        </dependency>--><!--        <dependency>-->
<!--            <groupId>com.google.zxing</groupId>-->
<!--            <artifactId>javase</artifactId>-->
<!--            <version>3.3.3</version>-->
<!--        </dependency>--><dependency><groupId>com.fasterxml.jackson.module</groupId><artifactId>jackson-module-parameter-names</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.4</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.fasterxml.jackson.datatype</groupId><artifactId>jackson-datatype-jdk8</artifactId></dependency><dependency><groupId>com.fasterxml.jackson.datatype</groupId><artifactId>jackson-datatype-jsr310</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-autoconfigure</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

1.1.5 创建连接数据库

        使用Navicat使用192.168.101.65连接数据库,

2. 内容管理模块

2.1 需求分析

2.1.1 介绍

        内容管理系统(content management system,CMS),是一种位于WEB前端(Web 服务器)和后端办公系统或流程(内容创作、编辑)之间的软件系统。内容的创作人员、编辑人员、发布人员使用内容管理系统来提交、修改、审批、发布内容。这里指的“内容”可能包括文件、表格、图片、数据库中的数据甚至视频等一切你想要发布到Internet、Intranet以及Extranet网站的信息。

        本项目作为一个大型的在线教育平台,其内容管理模块主要对课程及相关内容进行管理,包括:课程的基本信息、课程图片、课程师资信息、课程的授课计划、课程视频、课程文档等内容的管理。

2.1.2 业务流程

课程查询的业务流程如下:

1、教学机构人员点击课程管理首先进入课程查询界面,如下:

2.在课程进行列表查询页面输入查询条件查询课程信息

当不输入查询条件时输入全部课程信息。

输入查询条件查询符合条件的课程信息。

约束:本教学机构查询本机构的课程信息。

整个流程分为前端、接口层、业务层三部分。

所以模块工程的结构如下图所示

  • xuecheng-plus-content-api:接口工程,为前端提供接口。
  • xuecheng-plus-content-service: 业务工程,为接口工程提供业务支撑。在这个模块进行业务开发
  • xuecheng-plus-content-model: 数据模型工程,存储数据模型类、数据传输类型等

        xuecheng-plus-content:内容管理模块工程,负责聚合xuecheng-plus-content-api、xuecheng-plus-content-service、xuecheng-plus-content-model。

2.1.3 数据模型

下边从查询条件、查询列表两个方面分析数据模型

  • 查询条件:

包括:课程名称、课程审核状态、课程发布状态

课程名称:可以模糊搜索

课程审核状态:未提交、已提交、审核通过、审核未通过

课程发布状态:未发布、已发布、已下线

因为是分页查询所以查询条件中还要包括当前页码、每页显示记录数。

  • 查询结果:

查询结果中包括:课程id、课程名称、任务数、创建时间、是否付费、审核状态、类型,操作

任务数:该课程所包含的课程计划数,即课程章节数。

是否付费:课程包括免费、收费两种。

        类型:录播、直播

因为是分页查询所以查询结果中还要包括总记录数、当前页、每页显示记录数。

2.2 代码开发

2.2.1 创建工程

1)创建xuecheng-plus-content工程

        pom文件👇

        需要扫描同级xuecheng-plus-parent工程模块的依赖,所以需要<relativePath>../xuecheng-plus-parent</relativePath>

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.xuecheng</groupId><artifactId>xuecheng-plus-parent</artifactId><version>0.0.1-SNAPSHOT</version><relativePath>../xuecheng-plus-parent</relativePath><!--        <relativePath/> &lt;!&ndash; lookup parent from repository &ndash;&gt;--></parent><!--    聚合管理子模块     --><modules><module>xuecheng-plus-content-api</module><module>xuecheng-plus-content-service</module><module>xuecheng-plus-content-model</module></modules>
<!--    打包方式    --><packaging>pom</packaging><groupId>com.xuecheng</groupId><artifactId>xuecheng-plus-content</artifactId><version>0.0.1-SNAPSHOT</version><name>xuecheng-plus-content</name><description>xuecheng-plus-content</description><properties><java.version>17</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</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>

2)在xuecheng-plus-content下创建xuecheng-plus-content-model数据模型工程

        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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion>
<!--  父工程为xuecheng-plus-content工程  --><parent><groupId>com.xuecheng</groupId><artifactId>xuecheng-plus-content</artifactId><version>0.0.1-SNAPSHOT</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.xuecheng</groupId><artifactId>xuecheng-plus-content-model</artifactId><version>0.0.1-SNAPSHOT</version><name>xuecheng-plus-content-model</name><description>xuecheng-plus-content-model</description><properties><java.version>17</java.version></properties>
<!--  本工程依赖Base基础工程  --><dependencies><dependency><groupId>com.xuecheng</groupId><artifactId>xuecheng-plus-base</artifactId><version>0.0.1-SNAPSHOT</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

3)在xuecheng-plus-content下创建xuecheng-plus-content-service接口实现工程

        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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.xuecheng</groupId><artifactId>xuecheng-plus-content</artifactId><version>0.0.1-SNAPSHOT</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.xuecheng</groupId><artifactId>xuecheng-plus-content-service</artifactId><version>0.0.1-SNAPSHOT</version><name>xuecheng-plus-content-service</name><description>xuecheng-plus-content-service</description><properties><java.version>17</java.version></properties><dependencies><dependency><groupId>com.xuecheng</groupId><artifactId>xuecheng-plus-content-model</artifactId><version>0.0.1-SNAPSHOT</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

4)在xuecheng-plus-content下创建xuecheng-plus-content-api接口工程。

        xuecheng-plus-content-api接口工程的父工程是xuecheng-plus-content,它依赖了xuecheng-plus-base基础工程

        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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.xuecheng</groupId><artifactId>xuecheng-plus-content</artifactId><version>0.0.1-SNAPSHOT</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.xuecheng</groupId><artifactId>xuecheng-plus-content-api</artifactId><version>0.0.1-SNAPSHOT</version><name>xuecheng-plus-content-api</name><description>xuecheng-plus-content-api</description><properties><java.version>17</java.version></properties><dependencies><dependency><groupId>com.xuecheng</groupId><artifactId>xuecheng-plus-content-service</artifactId><version>0.0.1-SNAPSHOT</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

        四个工程模块如下:

2.2.2 生成po类实体类

2.2.3 接口设计

        接口设计例子入下:

POST /content/course/list?pageNo=2&pageSize=1
Content-Type: application/json{"auditStatus": "202002","courseName": "","publishStatus":""
}
###成功响应结果
{"items": [{"id": 26,"companyId": 1232141425,"companyName": null,"name": "spring cloud实战","users": "所有人","tags": null,"mt": "1-3","mtName": null,"st": "1-3-2","stName": null,"grade": "200003","teachmode": "201001","description": "本课程主要从四个章节进行讲解: 1.微服务架构入门 2.spring cloud 基础入门 3.实战Spring Boot 4.注册中心eureka。","pic": "https://cdn.educba.com/academy/wp-content/uploads/2018/08/Spring-BOOT-Interview-questions.jpg","createDate": "2019-09-04 09:56:19","changeDate": "2021-12-26 22:10:38","createPeople": null,"changePeople": null,"auditStatus": "202002","auditMind": null,"auditNums": 0,"auditDate": null,"auditPeople": null,"status": 1,"coursePubId": null,"coursePubDate": null}],"counts": 23,"page": 2,"pageSize": 1
}
  •  定义分页查询封装实体类

        由于分页查询这一类的接口在项目较多,这里针对分页查询的参数(当前页码、每页显示记录数)单独在xuecheng-plus-base基础工程中定义。

package com.xuecheng.base.model;import lombok.Data;/*** @author Mr.M* @version 1.0* @description 分页参数* @date 2022/9/6 11:05*/
@Data
public class PageParams {//    当前页private Long pageNo = 1L;//    每页显示的条数private Long pageSize = 30L;}
  •  定义前端发送给后端的请求封装实体类

package com.xuecheng.content.model.dto;import lombok.Data;/*** @author Mr.M* @version 1.0* @description 课程查询参数* @date 2023/2/12 9:05*/
@Data
public class QueryCourseParamsDto {//审核状态private String auditStatus;//课程名称private String courseName;//发布状态private String publishStatus;}

  • 定义封装后端响应给前端的数据的实体类

package com.xuecheng.base.model;import lombok.Data;import java.io.Serializable;
import java.util.List;/*** @description 翻页查询结果*/
@Data
public class PageResult<T> implements Serializable {// 数据列表private List<T> items;//总记录数private long counts;//当前页码private long page;//每页记录数private long pageSize;
}
  • 在api工程添加依赖
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.xuecheng</groupId><artifactId>xuecheng-plus-content</artifactId><version>0.0.1-SNAPSHOT</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.xuecheng</groupId><artifactId>xuecheng-plus-content-api</artifactId><version>0.0.1-SNAPSHOT</version><name>xuecheng-plus-content-api</name><description>xuecheng-plus-content-api</description><properties><java.version>17</java.version></properties><dependencies><dependency><groupId>com.xuecheng</groupId><artifactId>xuecheng-plus-content-service</artifactId><version>0.0.1-SNAPSHOT</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>io.swagger.core.v3</groupId><artifactId>swagger-annotations</artifactId><version>2.1.2</version></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j</artifactId>
<!--            <version>2.17.2</version>--></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

2.2.4 定义接口

1)在api工程中定义controller方法
package com.xuecheng.content.api;import com.xuecheng.base.model.PageParams;
import com.xuecheng.base.model.PageResult;
import com.xuecheng.content.model.dto.QueryCourseParamsDto;
import com.xuecheng.content.model.po.CourseBase;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** 课程信息接口*/
@RestController
public class CourseBaseInfoController {/*** 课程查询接口* @param pageParams 分页参数* @param queryCourseParamsDto 查询条件* @return 课程列表*/@RequestMapping("/course/list")public PageResult<CourseBase> list(PageParams pageParams, QueryCourseParamsDto queryCourseParamsDto){return null;}
}
2)在content工程下创建ContentApplication启动类 
    package com.xuecheng.content;import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;/*** @author Mr.M* @version 1.0* @description 内容管理服务启动类* @date 2023/2/12 8:09*/
    @SpringBootApplication
    public class ContentApplication {public static void main(String[] args) {SpringApplication.run(ContentApplication.class, args);}
    }
    
    3)添加配置文件
    # application.yml
    server:port: 63040servlet:context-path: /contentspring:application:name: content-apidatasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://192.168.101.65:3306/xcplus_content?serverTimezone=UTC&useUnicode=true&useSSL=falseusername: rootpassword: mysql
    

    问题:解决bootstrap.yml没有小树叶的问题

    解决: 

            DTO数据传输对象、PO持久化对象,DTO用于接口层前端向业务层后端之间传输数据,PO数据库表的实体类对象用于业务层与持久层之间传输数据,有些项目还会设置VO对象,VO对象用在前端与接口层之间传输数据

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

    如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

    相关文章

    腾讯云录音文件快速识别实战教程

    文章目录前言接口简介前置条件实战添加 Maven 依赖核心代码示例参数说明个人简介前言 本文介绍如何基于腾讯云语音识别 快速识别接口&#xff0c;实现通过 HTTPS POST 方式上传音频并快速识别同步返回识别结果的实战流程。 接口简介 腾讯云语音识别 快速识别接口 支持上传音…

    .NET Framework 安装失败及异常情况 常用处理方法

    在使用.NET Framework 的过程中&#xff0c;安装失败或出现异常是比较常见的问题。这些问题可能由系统环境、文件损坏、权限不足等多种原因引起。以下是一些常见的安装失败及异常情况&#xff0c;以及对应的处理方法&#xff1a; 首先&#xff0c;下载.net framework 3.5文件。…

    ​AI赋能的自动驾驶革命:从安全架构到世界模型的系统性突破

    ​在计算机视觉与机器人技术的交汇处&#xff0c;自动驾驶正经历着从模块化设计向端到端AI系统的范式转移。NVIDIA作为这场变革的核心推动者&#xff0c;其DRIVE平台展现出的技术整合深度令人惊叹——从芯片级的能效优化到城市级数字孪生仿真&#xff0c;构建起覆盖"AI训练…

    ACL协议:核心概念与配置要点解析

    ACL协议 在H3C网络设备&#xff08;交换机、路由器、防火墙等&#xff09;中&#xff0c;ACL&#xff08;Access Control List&#xff0c;访问控制列表&#xff09; 是一个核心的流量过滤和控制机制。核心目的&#xff1a; 流量过滤&#xff1a;控制哪些流量可以通过接口&…

    文件追加模式:编写一个程序,向一个已存在的文件末尾追加内容。

    知识点文件打开模式"r"&#xff1a;只读&#xff1b;文件须存在。"w"&#xff1a;写入&#xff1b;清空或新建。"a"&#xff1a;追加&#xff1b;文件末尾写入。"a"&#xff1a;读/写追加。追加&#xff08;Append&#xff09;机制&qu…

    OneCode框架事件基础模型架构深度剖析与代码实现

    一、整体架构概览 作为OneCode框架的事件核心模块&#xff0c;构建了一套跨浏览器、多终端兼容的事件驱动架构。该架构采用分层设计思想&#xff0c;从底层事件捕获到高层事件模拟&#xff0c;形成了完整的事件生命周期管理体系。整体架构可分为五个核心层次&#xff1a;事件捕…

    Spring for Apache Pulsar->Reactive Support->Message Production

    好消息&#xff1a;Spring for Apache Pulsar这两天刚刚升到2.0.0版本1. ReactivePulsarTemplate在Pulsar生产者端&#xff0c;Spring Boot自动配置提供了一个ReactivePulsarTemplate用于发布记录。该模板实现了一个名为ReactivePulse Operations的接口&#xff0c;并提供了通过…

    AtCoder Beginner Contest 413

    比赛链接如下&#xff1a;Denso Create Programming Contest 2025&#xff08;AtCoder Beginner Contest 413&#xff09; - AtCoder A - Content Too Large Problem Statement Takahashi has N items and one bag. The size of the i-th (1≤i≤N) item is Ai​, and the si…

    Java学习---JVM(1)

    JVM&#xff0c;即Java虚拟机&#xff0c;其是Java程序的运行环境&#xff0c;是Java技术的核心组成部分&#xff0c;本次就JVM的自动内存管理详细展开&#xff1a;JVM的内存区域分为2大类&#xff0c;即线程私有的和线程共享的&#xff0c;前者分为3大块&#xff0c;虚拟机栈、…

    Qt去噪面板搭建

    建立单选互斥性面板用于选择噪声属性// 创建去噪面板 QWidget* noisePanel new QWidget(); QVBoxLayout* mainLayout new QVBoxLayout(noisePanel); mainLayout->setContentsMargins(10, 10, 10, 10); mainLayout->setSpacing(15);// 去噪方法选择组QGroupBox* methodG…

    无需公网IP的文件交互:FileCodeBox容器化部署技术解析

    文章目录 前言1.Docker部署2.简单使用演示3. 安装cpolar内网穿透4. 配置公网地址5. 配置固定公网地址 前言 在数字化办公需求日益增长的今天&#xff0c;文件传输已成为职场协作的高频刚需。传统共享方式却饱受诟病&#xff1a;"需要安装哪些臃肿客户端&#xff1f;免费版…

    1. http 有哪些版本,你是用的哪个版本,怎么查看

    http 有哪些版本&#xff0c;你是用的哪个版本&#xff0c;怎么查看 总结&#xff1a;http 版本有 0.9/1.0/1.1/2.0/3.0&#xff0c;我们常用的是 1.1 和 2.0&#xff0c;使用 window.chrome.loadTimes() 获取 http 版本。 常见的 HTTP 版本 HTTP/0.9&#xff1a;最初的版本&am…

    C# IIncrementalGenerator干点啥

    生成器项目 得基于.Net Stander 2.0 重要&#xff1a;<IsRoslynComponent>true</IsRoslynComponent>、<IncludeBuildOutput>false</IncludeBuildOutput>、 <PackageReference Include"Microsoft.CodeAnalysis" Version"4.14.0&q…

    在徐州网络中服务器租用与托管的优势

    一、高性价比&#xff1a;徐州万恒提供多种配置的服务器供租用&#xff0c;满足不同企业和个人的业务需求&#xff0c;无论是初创企业追求低成本高效能&#xff0c;还是对性能有严苛要求的大型项目&#xff0c;都能找到合适的服务器型号&#xff0c;以极具竞争力的价格获取强大…

    学习软件测试的第十四天(移动端)

    一.常用的abd命令有哪些1.什么是 ADB&#xff1f;通俗解释&#xff1a; ADB 就像一个桥梁&#xff0c;让电脑能控制连接的手机&#xff0c;比如安装APP、抓日志、重启设备等。专业术语总结&#xff1a; ADB&#xff08;Android Debug Bridge&#xff09;是 Android SDK 提供的命…

    04-ES6

    let和const命令ES6中新增了let命令&#xff0c;用来声明变量&#xff0c;用法类似与varlet和var的不同&#xff1a;1、不存在变量提升 console.log(a); //Cannot access a before initializationlet a 100;2、同一个作用域不能重复定义同一个名称var c 20;let c 30;c…

    基于GeographicLib实现测站地平坐标系(东北天)转地心固定坐标系XYZ

    一、概述主要内容&#xff1a;本文基于GeographicLib开源库&#xff0c;实现了一个地理空间坐标转换功能&#xff0c;主要用于根据观测站的位置和目标的相对方位信息&#xff0c;计算目标在地球坐标系中的绝对位置。输入&#xff1a;观测站的经纬度坐标(纬度、经度、海拔高度)和…

    若依框架去掉Redis

    这篇文章全是按照我的实战操作来的&#xff0c;本文一是记录一下这个过程&#xff0c;二是帮助更多的人少走弯路。 接下来我们看实战&#xff1a;第一步毋庸置疑&#xff0c;就是找到配置文件application.yml里面大redis配置部分&#xff0c;直接注释掉 注意这里的data:这是否注…

    【会员专享数据】2013-2024年我国省市县三级逐日SO₂数值数据(Shp/Excel格式)

    之前我们分享过2013-2024年全国范围逐日SO₂栅格数据&#xff08;可查看之前的文章获悉详情&#xff09;!该数据来源于韦晶博士、李占清教授团队发布在国家青藏高原科学数据中心网站上的中国高分辨率高质量近地表空气污染物数据集。很多小伙伴拿到数据后反馈栅格数据不太方便使…

    TCP SYN、UDP、ICMP之DOS攻击

    一、实验背景 Dos攻击是指故意的攻击网络协议实现的缺陷或直接通过野蛮手段残忍地耗尽被攻击对象的资源&#xff0c;目的是让目标计算机或网络无法提供正常的服务或资源访问&#xff0c;使目标系统服务系统停止响应甚至崩溃。 二、实验设备 1.一台靶机Windows主机 2.增加一个网…