分类接口开发

文章目录

    • 1.查询所有一级分类
        • 1.sun-club-application-controller 控制层
          • 1.SubjectCategoryController.java 定义基础的queryPrimaryCategory,调用领域层
        • 2.sun-club-domain 领域层
          • 1.SubjectCategoryDomainService.java
          • 2.SubjectCategoryConverter.java
          • 3.SubjectCategoryDomainServiceImpl.java
        • 3.sun-club-infra 基础设施层
          • 1.service
            • 1.SubjectCategoryService.java
            • 2.SubjectCategoryServiceImpl.java
          • 2.mapper
            • 1.SubjectCategoryDao.java
            • 2.SubjectCategoryDao.xml
        • 4.回到sun-club-application-controller
          • 1.SubjectCategoryDTOConverter.java
          • 2.SubjectCategoryController.java
          • 3.测试
          • 4.问题分析
        • 5.使用动态SQL优化查询
          • 1.sun-club-infra
            • 1.SubjectCategoryDao.xml
            • 2.SubjectCategoryDao.java
            • 3.SubjectCategoryService.java
            • 4.SubjectCategoryServiceImpl.java
          • 2.sun-club-domain
            • 1.SubjectCategoryDomainServiceImpl.java
            • 2.测试
    • 2.根据分类id查二级分类
        • 1.sun-club-application-controller
          • 1.SubjectCategoryController.java
        • 2.修改所有queryPrimaryCategory为queryCategory
        • 3.修改动态sql,使其可以只查询出未逻辑删除的记录
    • 3.分类模块接口开发
        • 1.接口设计
        • 2.sun-club-application-controller
          • 1.SubjectCategoryController.java
        • 3.sun-club-domain
          • 1.SubjectCategoryDomainService.java
          • 2.SubjectCategoryDomainServiceImpl.java
        • 4.sun-club-infra
          • 1.SubjectCategoryService.java
          • 2.SubjectCategoryServiceImpl.java
          • 3.SubjectCategoryDao.java
          • 4.SubjectCategoryDao.xml
          • 5.启动测试
    • 4.删除分类接口开发
        • 1.基本设计
        • 2.sun-club-application-controller
          • 1.SubjectCategoryController.java
        • 3.sun-club-common
          • 1.IsDeleteFlagEnum.java
        • 4.sun-club-domain
          • 1.SubjectCategoryDomainService.java
          • 2.SubjectCategoryDomainServiceImpl.java
          • 3.测试
    • 5.分类接口总览
        • 1.使用commons-lang3进行开发
          • 1.sun-club-common引入依赖
          • 2.SubjectCategoryController.java使用isBlank进行校验
        • 2.SubjectCategoryDomainServiceImpl.java 插入时设置逻辑删除
        • 3.查询一级分类
          • 1.SubjectCategoryDao.xml,添加逻辑删除字段
          • 2.sun-club-common添加分类的枚举CategoryTypeEnum.java
          • 3.SubjectCategoryDomainServiceImpl.java查询未删除字段
          • 4.SubjectCategoryController.java修改查询一级分类逻辑,使其传入category_type
          • 5.修改接口
          • 6.重启测试
        • 4.查询二级分类
          • 1.修改接口

1.查询所有一级分类

1.sun-club-application-controller 控制层
1.SubjectCategoryController.java 定义基础的queryPrimaryCategory,调用领域层
    @PostMapping("/queryPrimaryCategory")
    public Result<List<SubjectCategoryDTO>> queryPrimaryCategory() {
        List<SubjectCategoryBO> subjectCategoryBOList = subjectCategoryDomainService.queryPrimaryCategory();
    }
2.sun-club-domain 领域层
1.SubjectCategoryDomainService.java
    /**
     * 查询一级分类
     * @return
     */
    List<SubjectCategoryBO> queryPrimaryCategory();
2.SubjectCategoryConverter.java
    // 将List<SubjectCategory>转换为List<SubjectCategoryBO>
    List<SubjectCategoryBO> convertSubjectCategoryToBo(List<SubjectCategory> subjectCategoryList);
3.SubjectCategoryDomainServiceImpl.java
    @Override
    public List<SubjectCategoryBO> queryPrimaryCategory() {
        // 查询一级分类
        List<SubjectCategory> subjectCategoryList = subjectCategoryService.queryPrimaryCategory();
        // 将List<SubjectCategory>转换为List<SubjectCategoryBO>
        List<SubjectCategoryBO> subjectCategoryBOList = SubjectCategoryConverter.INSTANCE.convertSubjectCategoryToBo(subjectCategoryList);
        // 打印日志
        if (log.isInfoEnabled()) {
            log.info("SubjectCategoryDomainServiceImpl queryPrimaryCategory, subjectCategoryBOList:{}", JSON.toJSONString(subjectCategoryBOList));
        }
        return subjectCategoryBOList;
    }
3.sun-club-infra 基础设施层
1.service
1.SubjectCategoryService.java
    /**
     * 查询一级分类
     * @return
     */
    List<SubjectCategory> queryPrimaryCategory();
2.SubjectCategoryServiceImpl.java
    /**
     * 查询一级分类
     * @return
     */
    @Override
    public List<SubjectCategory> queryPrimaryCategory() {
        return this.subjectCategoryDao.queryPrimaryCategory();
    }
2.mapper
1.SubjectCategoryDao.java
    /**
     * 查询一级分类
     * @return
     */
    List<SubjectCategory> queryPrimaryCategory();
2.SubjectCategoryDao.xml
    <!--查询所有一级分类-->
    <select id="queryPrimaryCategory" resultMap="SubjectCategoryMap">
        select
        id, category_name, category_type, image_url, parent_id, created_by, created_time, update_by, update_time
        from subject_category
        where parent_id = 0
        and is_deleted = 0
    </select>
4.回到sun-club-application-controller
1.SubjectCategoryDTOConverter.java
    // 将List<SubjectCategoryBO>转换为List<SubjectCategoryDTO>
    List<SubjectCategoryDTO> convertSubjectCategoryToDto(List<SubjectCategoryBO> subjectCategoryBOList);
2.SubjectCategoryController.java
    @PostMapping("/queryPrimaryCategory")
    public Result<List<SubjectCategoryDTO>> queryPrimaryCategory() {
        List<SubjectCategoryBO> subjectCategoryBOList = subjectCategoryDomainService.queryPrimaryCategory();
        // 转换BO为DTO
        List<SubjectCategoryDTO> subjectCategoryDTOList = SubjectCategoryDTOConverter.INSTANCE.convertSubjectCategoryToDto(subjectCategoryBOList);
        return Result.ok(subjectCategoryDTOList);
    }
3.测试

image-20240524201928312

4.问题分析
  • 这样写的查询语句就太死了,所以需要使用动态SQL来优化
5.使用动态SQL优化查询
1.sun-club-infra
1.SubjectCategoryDao.xml
    <!--查询所有一级分类-->
    <select id="queryPrimaryCategory" resultMap="SubjectCategoryMap">
        select
        id, category_name, category_type, image_url, parent_id, created_by, created_time, update_by, update_time
        from subject_category
        <where>
            <if test="id != null">
                and id = #{id}
            </if>
            <if test="categoryName != null and categoryName != ''">
                and category_name = #{categoryName}
            </if>
            <if test="categoryType != null">
                and category_type = #{categoryType}
            </if>
            <if test="imageUrl != null and imageUrl != ''">
                and image_url = #{imageUrl}
            </if>
            <if test="parentId != null">
                and parent_id = #{parentId}
            </if>
            <if test="createdBy != null and createdBy != ''">
                and created_by = #{createdBy}
            </if>
            <if test="createdTime != null">
                and created_time = #{createdTime}
            </if>
            <if test="updateBy != null and updateBy != ''">
                and update_by = #{updateBy}
            </if>
            <if test="updateTime != null">
                and update_time = #{updateTime}
            </if>
            <if test="isDeleted != null">
                and is_deleted = #{isDeleted}
            </if>
        </where>
    </select>
2.SubjectCategoryDao.java
    /**
     * 查询一级分类
     * @return
     */
    List<SubjectCategory> queryPrimaryCategory(@Param("subjectCategory") SubjectCategory subjectCategory);
3.SubjectCategoryService.java
    /**
     * 查询一级分类
     * @return
     */
    List<SubjectCategory> queryPrimaryCategory(SubjectCategory subjectCategory);
4.SubjectCategoryServiceImpl.java
    /**
     * 查询一级分类
     * @return
     */
    @Override
    public List<SubjectCategory> queryPrimaryCategory(SubjectCategory subjectCategory) {
        return this.subjectCategoryDao.queryPrimaryCategory(subjectCategory);
    }
2.sun-club-domain
1.SubjectCategoryDomainServiceImpl.java

image-20240524204420230

2.测试

image-20240524205350528

2.根据分类id查二级分类

1.sun-club-application-controller
1.SubjectCategoryController.java
    /**
     * 根据id查询二级分类
     * @param subjectCategoryDTO
     * @return
     */
    @PostMapping("/queryCategoryByPrimary")
    public Result<List<SubjectCategoryDTO>> queryCategoryByPrimary(@RequestBody SubjectCategoryDTO subjectCategoryDTO) {
        try {
            // 打日志
            if (log.isInfoEnabled()) {
                log.info("SubjectCategoryController queryCategoryByPrimary SubjectCategoryDTO, subjectCategoryDTO:{}", JSON.toJSONString(subjectCategoryDTO));
            }
            // 参数校验
            Preconditions.checkNotNull(subjectCategoryDTO.getParentId(), "分类id不能为空");
            // 转换DTO为BO
            SubjectCategoryBO subjectCategoryBO = SubjectCategoryDTOConverter.INSTANCE.convertDTOToSubjectCategory(subjectCategoryDTO);
            // 查询二级分类
            List<SubjectCategoryBO> subjectCategoryBOList = subjectCategoryDomainService.queryCategory(subjectCategoryBO);
            // 转换BO为DTO
            List<SubjectCategoryDTO> subjectCategoryDTOList = SubjectCategoryDTOConverter.INSTANCE.convertSubjectCategoryToDto(subjectCategoryBOList);
            return Result.ok(subjectCategoryDTOList);
        } catch (Exception e) {
            // 记录日志
            log.error("SubjectCategoryController queryPrimaryCategory error:{}", e.getMessage(), e);
            return Result.fail("查询一级分类失败");
        }
    }
2.修改所有queryPrimaryCategory为queryCategory
3.修改动态sql,使其可以只查询出未逻辑删除的记录

image-20240524215701911

3.分类模块接口开发

1.接口设计

image-20240525142412928

2.sun-club-application-controller
1.SubjectCategoryController.java
    /**
     * 更新分类
     * @param subjectCategoryDTO
     * @return
     */
    @PostMapping("/update")
    public Result<Boolean> update(@RequestBody SubjectCategoryDTO subjectCategoryDTO) {
        try {
            if (log.isInfoEnabled()) {
                log.info("SubjectCategoryController update SubjectCategoryDTO, subjectCategoryDTO:{}", JSON.toJSONString(subjectCategoryDTO));
            }
            // 参数校验
            Preconditions.checkNotNull(subjectCategoryDTO.getId(), "分类id不能为空");
            // 转换DTO为BO
            SubjectCategoryBO subjectCategoryBO = SubjectCategoryDTOConverter.INSTANCE.convertDTOToSubjectCategory(subjectCategoryDTO);
            Boolean result =  subjectCategoryDomainService.update(subjectCategoryBO);
            return Result.ok(result);
        } catch (Exception e) {
            log.error("SubjectCategoryController update error:{}", e.getMessage(), e);
            return Result.fail("更新分类失败");
        }
    }
3.sun-club-domain
1.SubjectCategoryDomainService.java
    /**
     * 更新分类
     * @param subjectCategoryBO
     * @return
     */
    Boolean update(SubjectCategoryBO subjectCategoryBO);
2.SubjectCategoryDomainServiceImpl.java
    @Override
    public Boolean update(SubjectCategoryBO subjectCategoryBO) {
        if (log.isInfoEnabled()) {
            log.info("SubjectCategoryDomainServiceImpl update SubjectCategoryBO, SubjectCategoryBO:{}", JSON.toJSONString(subjectCategoryBO));
        }
        SubjectCategory subjectCategory = SubjectCategoryConverter.INSTANCE.convertBoToSubjectCategory(subjectCategoryBO);
        int update = subjectCategoryService.update(subjectCategory);
        return update > 0;
    }
4.sun-club-infra
1.SubjectCategoryService.java
    /**
     * 修改数据
     *
     * @param subjectCategory 实例对象
     * @return 实例对象
     */
    int update(SubjectCategory subjectCategory);

2.SubjectCategoryServiceImpl.java
    /**
     * 修改数据
     *
     * @param subjectCategory 实例对象
     * @return 实例对象
     */
    @Override
    public int update(SubjectCategory subjectCategory) {
        return this.subjectCategoryDao.update(subjectCategory);
    }

3.SubjectCategoryDao.java
    /**
     * 修改数据
     *
     * @param subjectCategory 实例对象
     * @return 影响行数
     */
    int update(SubjectCategory subjectCategory);
4.SubjectCategoryDao.xml
    <!--通过主键修改数据-->
    <update id="update">
        update subject_category
        <set>
            <if test="categoryName != null and categoryName != ''">
                category_name = #{categoryName},
            </if>
            <if test="categoryType != null">
                category_type = #{categoryType},
            </if>
            <if test="imageUrl != null and imageUrl != ''">
                image_url = #{imageUrl},
            </if>
            <if test="parentId != null">
                parent_id = #{parentId},
            </if>
            <if test="createdBy != null and createdBy != ''">
                created_by = #{createdBy},
            </if>
            <if test="createdTime != null">
                created_time = #{createdTime},
            </if>
            <if test="updateBy != null and updateBy != ''">
                update_by = #{updateBy},
            </if>
            <if test="updateTime != null">
                update_time = #{updateTime},
            </if>
            <if test="isDeleted != null">
                is_deleted = #{isDeleted},
            </if>
        </set>
        where id = #{id}
    </update>
5.启动测试

image-20240525144903818

image-20240525144923069

4.删除分类接口开发

1.基本设计

image-20240525145418093

2.sun-club-application-controller
1.SubjectCategoryController.java
    /**
     * 删除分类
     * @param subjectCategoryDTO
     * @return
     */
    @PostMapping("/delete")
    public Result<Boolean> delete(@RequestBody SubjectCategoryDTO subjectCategoryDTO) {
        try {
            if (log.isInfoEnabled()) {
                log.info("SubjectCategoryController delete SubjectCategoryDTO, subjectCategoryDTO:{}", JSON.toJSONString(subjectCategoryDTO));
            }
            // 参数校验
            Preconditions.checkNotNull(subjectCategoryDTO.getId(), "分类id不能为空");
            // 转换DTO为BO
            SubjectCategoryBO subjectCategoryBO = SubjectCategoryDTOConverter.INSTANCE.convertDTOToSubjectCategory(subjectCategoryDTO);
            Boolean result =  subjectCategoryDomainService.delete(subjectCategoryBO);
            return Result.ok(result);
        } catch (Exception e) {
            log.error("SubjectCategoryController delete error:{}", e.getMessage(), e);
            return Result.fail("删除分类失败");
        }
    }

3.sun-club-common
1.IsDeleteFlagEnum.java
package com.sunxiansheng.subject.common.enums;

import lombok.Getter;

/**
 * Description: 删除标识枚举
 * @Author sun
 * @Create 2024/5/24 9:53
 * @Version 1.0
 */
@Getter
public enum IsDeleteFlagEnum {
    DELETED(1, "已删除"),
    UN_DELETED(0, "未删除");

    public int code;
    public String desc;

    IsDeleteFlagEnum(int code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    /**
     * 根据code获取枚举
     * @param code
     * @return
     */
    public static IsDeleteFlagEnum getByCode(int code) {
        for (IsDeleteFlagEnum value : values()) {
            if (value.code == code) {
                return value;
            }
        }
        return null;
    }
}

4.sun-club-domain
1.SubjectCategoryDomainService.java
    /**
     * 删除分类
     * @param subjectCategoryBO
     * @return
     */
    Boolean delete(SubjectCategoryBO subjectCategoryBO);
2.SubjectCategoryDomainServiceImpl.java
    @Override
    public Boolean delete(SubjectCategoryBO subjectCategoryBO) {
        if (log.isInfoEnabled()) {
            log.info("SubjectCategoryDomainServiceImpl delete SubjectCategoryBO, SubjectCategoryBO:{}", JSON.toJSONString(subjectCategoryBO));
        }
        SubjectCategory subjectCategory = SubjectCategoryConverter.INSTANCE.convertBoToSubjectCategory(subjectCategoryBO);
        // 逻辑删除
        subjectCategory.setIsDeleted(1);
        int update = subjectCategoryService.update(subjectCategory);
        return update > 0;
    }
3.测试

image-20240525151126364

image-20240525151141999

5.分类接口总览

1.使用commons-lang3进行开发
1.sun-club-common引入依赖
        <!-- commons-lang3 -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.11</version>
        </dependency>
2.SubjectCategoryController.java使用isBlank进行校验

image-20240525152110926

2.SubjectCategoryDomainServiceImpl.java 插入时设置逻辑删除

image-20240525152420094

3.查询一级分类
1.SubjectCategoryDao.xml,添加逻辑删除字段

image-20240525153011571

2.sun-club-common添加分类的枚举CategoryTypeEnum.java
package com.sunxiansheng.subject.common.enums;

import lombok.Getter;

/**
 * Description: 删除标识枚举
 * @Author sun
 * @Create 2024/5/24 9:53
 * @Version 1.0
 */
@Getter
public enum CategoryTypeEnum {
    PRIMARY(1, "岗位大类"),
    SECOND(2, "二级分类");

    public int code;
    public String desc;

    CategoryTypeEnum(int code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    /**
     * 根据code获取枚举
     * @param code
     * @return
     */
    public static CategoryTypeEnum getByCode(int code) {
        for (CategoryTypeEnum value : values()) {
            if (value.code == code) {
                return value;
            }
        }
        return null;
    }
}

3.SubjectCategoryDomainServiceImpl.java查询未删除字段

image-20240525154724130

4.SubjectCategoryController.java修改查询一级分类逻辑,使其传入category_type

image-20240525155259973

5.修改接口

image-20240525155336817

6.重启测试

image-20240525155444272

4.查询二级分类
1.修改接口

image-20240525155854718

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

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

相关文章

每日一题——Python代码实现力扣1. 两数之和(举一反三+思想解读+逐步优化)五千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 菜鸡写法 代码分析 时间复杂度分析 空间复杂度分析 改进建议 我要更强 方法1: 使…

英伟达下一代DLSS或利用人工智能

英伟达的黄仁勋在2024年Computex展会上的问答环节中&#xff0c;提前透露了公司未来几代深度学习超采样&#xff08;DLSS&#xff09;技术的发展方向。在回答有关DLSS的问题时&#xff0c;黄仁勋表示&#xff0c;未来我们将看到通过纯粹的人工智能生成的纹理和对象。他还提到&a…

体验了一下AI生产3D模型有感

我的实验路子是想试试能不能帮我建一下实物模型 SO 我选择了一个成都环球中心的网图 但是生成的结果掺不忍睹&#xff0c;但是看demo来看&#xff0c;似乎如果你能给出一张干净的提示图片&#xff0c;他还是能做出一些东西的 这里我延申的思考是这个物体他如果没看过背面&…

AI 大模型企业应用实战(13)-Lostinthemiddle长上下文精度处理

1 长文本切分信息丢失处理方案 10检索时性能大幅下降相关信息在头尾性能最高检索 ->> 排序 ->使用 实战 安装依赖&#xff1a; ! pip install sentence-transformers 演示如何使用 Langchain 库中的组件来处理长文本和检索相关信息。 导入所需的库使用指定的预训…

Posix多线程编程总结

Posix在线文档&#xff1a; The Single UNIX Specification, Version 2 (opengroup.org) 本文主要参考这位大神的文章&#xff1a; Posix多线程编程学习笔记 - 凌峰布衣 - 博客园 (cnblogs.com) 线程安全问题 多线程编程中&#xff0c;经常遇到的就是线程安全问题&#xff0c;或…

图片覆盖攻击

点击劫持的本质是一种视觉欺骗。顺着这个思路&#xff0c;还有一些攻击方法也可以起到类似的作 用&#xff0c;比如图片覆盖。 一名叫 sven.vetsch 的安全研究者最先提出了这种 Cross Site Image Overlaying 攻击&#xff0c;简称 XSIO。sven.vetsch 通过调整图片的 style 使得…

CDP问卷的目的是什么?CDP问卷对企业有什么好处

CDP问卷&#xff08;Carbon Disclosure Project问卷&#xff09;的目的是多方面的&#xff0c;主要包括以下几点&#xff1a; 推动透明度&#xff1a;CDP问卷要求企业公开披露其温室气体排放数据、减排目标和行动&#xff0c;以及气候风险管理策略等信息。这有助于增强企业的透…

Linux进程概念(二)

上期我们已经学习了进程的基础的内容&#xff0c;已经对进程的基本概念有了了解&#xff0c;知道了进程的组成&#xff0c; 本期我们将以操作为主进一步探讨进程的相关概念。 目录 查看进程 创建进程 查看进程 查看进程主要有两种方式。 ps ajx指令 在当前目录下有名为tes…

Canvas绘制图片和区域

如何使用Canvas在图片上绘制区域&#xff1f; 一. 首先&#xff0c;我们需要初始化三个canvas画布&#xff08;初始化Canvas&#xff09; initCanvas() {// 初始化canvas画布let canvasWrap document.getElementsByClassName("canvas-wrap");this.wrapWidth canva…

更改ip后还被封是ip质量的原因吗?

不同的代理IP的质量相同&#xff0c;一般来说可以根据以下几个因素来进行判断&#xff1a; 1.可用率 可用率就是提取的这些代理IP中可以正常使用的比率。假如我们无法使用某个代理IP请求目标网站或者请求超时&#xff0c;那么就代表这个代理不可用&#xff0c;一般来说免费代…

ubuntu18.04 编译HBA 并实例运行

HBA是一个激光点云层级式的全局优化的程序&#xff0c;他的论文题目是&#xff1a;HBA: A Globally Consistent and Efficient Large-Scale LiDAR Mapping Module&#xff0c;对应的github地址是&#xff1a;HKU-Mars-Lab GitHub 学习本博客&#xff0c;可以学到gtsam安装&am…

Vienna 整流器的基本原理及数学模型

2.1 Vienna 整流器基本工作原理 2.1.1 主电路拓扑结构分析 Vienna 整流器系统的主电路包含用于升压的三相电感、三相桥臂和两个直流侧均压电容。通过有规律的对双向开关进行控制不仅能实现功率双向流动&#xff0c;还能使网侧电流时刻跟踪电网电压&#xff0c;使系统运行在高…

昇思25天学习打卡营第5天|网络构建

一、简介&#xff1a; 神经网络模型是由神经网络层和Tensor操作构成的&#xff0c;mindspore.nn提供了常见神经网络层的实现&#xff0c;在MindSpore中&#xff0c;Cell类是构建所有网络的基类&#xff08;这个类和pytorch中的modul类是一样的作用&#xff09;&#xff0c;也是…

陀螺仪LSM6DSV16X与AI集成(7)----FIFO数据读取与配置

陀螺仪LSM6DSV16X与AI集成.7--检测自由落体 概述视频教学样品申请源码下载主要内容生成STM32CUBEMX串口配置IIC配置CS和SA0设置串口重定向参考程序初始换管脚获取ID复位操作BDU设置设置量程设置FIFO水印设置速率使用流模式设置FIFO时间戳批处理速率使能时间戳FIFO状态寄存器演示…

Mathtype7在Word2016中闪退(安装过6)

安装教程&#xff1a;https://blog.csdn.net/Little_pudding10/article/details/135465291 Mathtype7在Word2016中闪退是因为安装过Mathtype6&#xff0c;MathPage.wll和MathType Comm***.dotm)&#xff0c;不会随着Mathtype的删除自动删除&#xff0c;而新版的Mathtype中的文件…

【从0实现React18】 (三) 初探reconciler 带你初步探寻React的核心逻辑

Reconciler 使React核心逻辑所在的模块&#xff0c;中文名叫协调器&#xff0c;协调(reconciler)就是diff算法的意思 reconciler有什么用&#xff1f; 在前端框架出现之前&#xff0c;通常会使用 jQuery 这样的库来开发页面。jQuery 是一个过程驱动的库&#xff0c;开发者需要…

Django 模版过滤器

Django模版过滤器是一个非常有用的功能&#xff0c;它允许我们在模版中处理数据。过滤器看起来像这样&#xff1a;{{ name|lower }}&#xff0c;这将把变量name的值转换为小写。 1&#xff0c;创建应用 python manage.py startapp app5 2&#xff0c;注册应用 Test/Test/sett…

【git1】指令,commit,免密

文章目录 1.常用指令&#xff1a;git branch查看本地分支&#xff0c; -r查看远程分支&#xff0c; -a查看本地和远程&#xff0c;-v查看各分支最后一次提交, -D删除分支2.commit规范&#xff1a;git commit进入vi界面&#xff08;进入前要git config core.editor vim设一下vi模…

Java项目:基于SSM框架实现的精品酒销售管理系统分前后台【ssm+B/S架构+源码+数据库+毕业论文】

一、项目简介 本项目是一套基于SSM框架实现的精品酒销售管理系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简单、功…

【break】大头哥哥做题

【break】大头哥哥做题 时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】 【参考代码】 #include <iostream> using namespace std; int main(){ int sum 0;//求和int day 0;//天数 while(1){int a;cin>>a;if(a-1){break;//结束当前循环 }sum sum a; …