SpringCloud
1. 认识微服务 本章从单体架构的优缺点切入,分析大型项目采用单体架构的问题,以及微服务架构的解决思路。 1.1 单体架构 单体架构(monolithic structure):顾名思义,整个项目中所有功能模块都在同一个工程中开发;部署时需对所有模块一起编译、打包;架构设计和开发模式非常简单。 当项目规模较小时,单体架构上手快、部署运维方便,因此早期小型项目多采用这种模式。 但随着业务规模扩大、团队人员增加,单体架构的问题逐渐凸显: 团队协作成本高:数十人协作同一项目时,模块间代码边界模糊,分支合并易陷入 “冲突泥潭”。 系统发布效率低:任何模块变更都需发布整个系统,模块间制约多,一次发布可能耗时数十分钟甚至数小时。 系统可用性差:所有功能作为一个服务部署,相互影响大。热点功能耗尽资源时,会导致其他服务不可用。 单体架构可用性问题演示(以黑马商城为例) 为直观展示单体架构的可用性问题,对黑马商城的 hm-service 模块做如下改造与测试: 修改代码模拟耗时:修改 com.hmall.controller.HelloController 中的 hello 方法,模拟接...
Docker
前言 在学习 Linux 操作系统和项目部署时,我们常遇到命令繁多、软件安装复杂、环境依赖冲突等问题。尤其在微服务时代,成百上千台服务器的部署运维更是挑战。Docker 技术的出现,通过容器化解决了环境隔离与快速部署的问题,让项目部署变得简单高效。 本文基于 Ubuntu 24.04 LTS 系统,整理 Docker 核心知识点,包括基础命令、数据卷、镜像构建、网络配置及项目部署,并补充实用扩展内容。 1. 快速入门 1.1 安装 Docker Docker 支持主流操作系统,但安装方式因系统而异。以 Ubuntu 24.04 LTS 为例,可直接参考官方安装文档:https://docs.docker.com/engine/install/ubuntu/ 按照文档提示逐步执行命令即可,也可参考视频教程操作:https://www.bilibili.com/video/BV183B1Y2EGk/?spm_id_from=333.337.search-card.all.click&vd_source=ffdc8ef30147923fee0d363c8e4b12bb 对于其...
MyBatis-Plus
一、MyBatis-Plus 简介 1.1 什么是 MyBatis-Plus MyBatis-Plus(简称 MP)是 MyBatis 的增强工具,由 baomidou 团队开发维护,核心设计理念是 “只做增强,不做改变”—— 完全兼容 MyBatis 原生功能,不侵入现有代码,同时封装了大量重复的单表 CRUD 操作,让开发者无需手写繁琐的 SQL 或 XML 映射文件,即可快速完成业务开发。 正如其 slogan “TO BE THE BEST PARTNER OF MYBATIS” 所传递的,MP 并非替代 MyBatis,而是作为其 “最佳搭档” 存在。PPT 中用 “润物无声,如丝般顺滑” 形容其特性,恰是因为引入后不会对现有 MyBatis 工程产生任何干扰,原有代码可无缝衔接。 1.2 核心特性 MP 的核心价值集中在 “简化开发” 与 “效率提升”,结合课程内容可归纳为以下 6 点: 无侵入性:基于 MyBatis 原生架构扩展,不修改 MyBatis 核心逻辑,现有工程引入后无需重构代码。 效率至上:内置 BaseMapper(DAO 层)和 IServi...
Spring Boot:自动配置的核心原理
今天刚学完黑马的 JavaWeb 课程,回想整个过程还挺有感触的。前端部分学起来感觉挺顺的,到了后端,从 Maven 到 SpringBoot 的各种案例,做下来也都还好 —— 无非是搭好架构、引入依赖、标上注解,再写点 CRUD 代码,不算特别复杂。 但学到 Spring Boot 原理这块时,说实话第一遍是真有点懵。这大概是整个 JavaWeb 里,我唯一觉得抽象的部分了。后来又反复听了两三遍,自己也翻了翻源码,才算有了点初步的理解。 其实我们都感受过 Spring Boot “开箱即用” 的神奇 —— 只要引入依赖、写几行代码,一个能跑的应用很快就能启动起来。这背后,正是 Spring Boot 精心设计的自动配置机制在悄悄发力。今天就结合最新版本的特点,跟大家聊聊我对 Spring Boot 核心原理的理解。 一、从 “配置地狱” 到 “零配置” 的跨越 在 Spring Boot 出现之前,我们用 Spring 框架开发时,总得写一大堆 XML 配置或者 Java 配置类:声明 Bean、配置扫描路径、设置依赖注入关系…… 这些重复的工作被开发者们调侃成 “配置地狱”。...
解决Hexo相册滚动时图片消失的问题
在使用 Hexo 搭建单机游戏相册页面时,遇到了一个有趣的问题:浏览 “黑神话悟空” 分类下的图片时,向下滚动页面,上方的图片会突然消失;向上滚动时,消失的图片又会重新出现。经过一番排查,终于找到原因并解决,特此记录整个过程。 一、问题现象 具体表现 页面结构:使用 Hexo 的{% gallery %}标签展示图片,按游戏分类(奥日与萤火意志、黑神话悟空、战神)分组。如下图: 异常场景:在 “黑神话悟空” 分类下,当图片数量超过10张时,滚动页面到第 10 张之后,上方的图片会突然消失;再向上滚动一下,消失的图片又会重新加载出现。 其他分类:“奥日与萤火意志”(15 张)和 “战神”(10 张)中,“战神” 分类因图片数量刚好为 10 张,未出现异常;“奥日与萤火意志” 偶尔也会出现,但因滚动速度较慢,现象不明显。 二、问题分析 针对 “滚动时图片消失” 的现象,初步推测与图片加载机制或组件逻辑有关,逐一排查如下: 1. 图片懒加载(Lazy Loading)的影响 现代博客通常会启用图片懒加载(仅加载可视区域的图片),但正常的懒加载只会 “延迟加载”...