📄🦌🙌🐟🏖️
日志记录
Where there is a where there is a way
随机文章
按住 Shift 横向滚动
热门文章
按住 Shift 横向滚动
Maven基础

Maven基础

Maven是一个集构建、依赖管理和项目管理于一体的工具,核心是pom.xml文件,定义项目信息与依赖。它提供自动化构建、统一项目结构,并通过本地仓库、中央仓库和私服管理jar包。安装需配置环境变量、本地仓库、阿里源及JDK。依赖管理支持传递性,通过坐标唯一标识资源,使用scope控制作用范围。Maven生命周期分为clean、default和site三套,插件与生命周期绑定以执行具体任务。总之,Maven简化了Java项目的构建与依赖管理流程。

Docker Compose

Docker Compose

Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具,通过 YAML 文件配置服务、网络和卷,实现一键管理。核心概念包括服务(容器)、项目(关联服务组)和 YAML 文件。主要功能有:一键启动/停止、环境变量支持、服务依赖管理、实例扩展及本地开发实时重载。安装简单(apt/yum 安装插件)。常用命令:`up -d`(后台启动)、`down`(停止并清理)、`logs`(查看日志)、`exec`(进入容器执行命令)、`config`(验证配置)。典型场景:本地开发环境(代码实时同步)、多服务扩展(`--scale`)、多环境配置(合并不同 Compose 文件)。高级功能包括健康检查依赖、资源限制(Swarm 模式)等。

DockerFile

DockerFile

Dockerfile是用于创建自定义镜像的脚本,由命令语句组成,支持注释。它通常包含四部分:基础镜像信息(FROM)、维护者信息(MAINTAINER)、镜像操作指令(如RUN)和容器启动指令(CMD)。关键指令包括:FROM指定基础镜像;RUN执行命令并提交为新层;CMD设置容器启动命令(仅最后一条生效);EXPOSE暴露端口;ENV设置环境变量;ADD/COPY复制文件;ENTRYPOINT配置不可覆盖的启动命令;VOLUME创建挂载点;USER指定运行用户;WORKDIR设置工作目录;ONBUILD定义当作为基础镜像时自动执行的指令。编写完Dockerfile后,使用`docker build -t 标签 路径`命令创建镜像。

Docker

Docker

Docker 是一个基于 Go 语言的开源项目,用于实现轻量级操作系统虚拟化,核心依赖 Linux 容器(LXC)技术。其三大基本概念为:镜像(只读模板,类似类)、容器(镜像的运行实例,相互隔离)、仓库(集中存放镜像的场所,如 Docker Hub、阿里云、私有仓库)。镜像管理包括从仓库 pull 获取、通过 commit 或 Dockerfile 创建、push 上传、save/load 存出与载入、rmi 移除。容器管理涵盖 run 新建并启动(支持交互与守护态)、start 重启、stop 停止、ps 查看、rm 删除、export/import 导出导入、exec 或 attach 进入;网络方面支持 bridge 模式,通过 -P(随机映射)或 -p(指定端口)实现外部访问,也可用 --link 容器互联。仓库登录后可 pull 镜像、push 本地镜像;私有仓库基于 registry 镜像搭建。数据管理通过数据卷(宿主机目录与容器绑定实现持久化与同步)和数据卷容器(多个容器共享数据卷)实现容器数据持久化与交换。

Spring StateMechaine

Spring StateMechaine

Spring StateMachine是Spring生态中的状态机实现,用于管理对象的状态流转。其核心由**状态**、**事件**、**转换**和**动作**组成。通过继承`StateMachineConfigurerAdapter`并重写`configure`方法,可以定义状态、转换规则及全局配置(如监听器)。关键特性包括:**动作(Action)** 在转换时执行业务逻辑,**守卫(Guard)** 控制转换条件,**监听器(Listener)** 监控生命周期。高级功能涵盖**嵌套状态**、**并行状态**、**历史状态**(记住子状态)、**状态机工厂**(支持多实例)和**持久化**(恢复状态)。示例展示了从“待支付”到“已完成”的订单流程,结合数据库模拟、守卫校验和动作执行,为复杂业务流程提供了清晰的实现框架。

Spring Event

Spring Event

Spring Event 是 Spring 框架基于观察者模式实现的事件驱动编程机制,用于解耦事件的发布者与处理者。核心组件包括事件(继承 `ApplicationEvent`)、监听器(`@EventListener` 注解)和发布器(`ApplicationEventPublisher`)。基础用法:定义事件类,创建监听器,在业务方法中注入发布器并调用 `publishEvent`。默认同步执行,可通过 `@EnableAsync` 和 `@Async` 实现异步监听。事务事件监听器(`@TransactionalEventListener`)可将监听绑定到事务的特定阶段(如提交后、回滚后),确保数据一致性,适用于注册后发邮件等场景。使用时注意事件需在事务内发布,可结合 `@Async` 避免阻塞。

自定义SpringIOC

自定义SpringIOC

Spring IOC(控制反转)是Spring框架的核心,通过IoC容器管理Bean对象的创建和依赖关系。文章介绍了Spring IOC的基本使用(以XML配置为例)、核心模块(beans、core、context、expression)、BeanFactory与ApplicationContext的区别(BeanFactory延迟加载,ApplicationContext非延迟加载)、BeanDefinition(描述Bean的元数据)、BeanDefinitionReader(解析配置文件)及BeanDefinitionRegistry(注册中心)。最后演示了如何自定义Spring IOC,包括定义Bean相关POJO、注册表、解析器及IoC容器类,实现从XML配置加载并创建Bean,完成依赖注入。整体体现了Spring IOC的灵活性与可扩展性。

行为模式

行为模式

本文介绍了11种常见的行为型设计模式,核心思想是解决“对象之间如何交互与协作”,使系统行为更灵活、易扩展。其中重点讲解了**策略模式**(封装算法、替代if-else,结合Spring实现自动注入)、**模板方法模式**(固定流程骨架,子类实现细节)、**观察者模式**(发布-订阅,事件驱动,Spring中通过ApplicationEvent实现)、**责任链模式**(请求沿链传递,适用于Filter/Interceptor链,可结合Spring Bean管理)、**命令模式**(将请求封装为对象,支持撤销、排队和宏命令)、**状态模式**(状态驱动行为变化,简化状态转换逻辑)以及**迭代器、中介者、备忘录、解释器、访问者模式**。这些模式通过解耦调用者与执行者、集中控制交互、分离数据结构与操作等方式,解决了实际开发中的复杂交互问题,提升了代码的可维护性和扩展性。

正则表达式

正则表达式

正则表达式是一种强大的字符串匹配工具,用于校验数据格式和提取文本内容。它通过字符类(如[abc])、预定义字符(如\d匹配数字)、数量词(如+、*)和分组(())定义规则。在Java中,使用Pattern和Matcher类实现匹配与爬取,支持贪婪(默认)和非贪婪(在量词后加?)模式。字符串方法如matches()、replaceAll()、split()可直接应用正则。捕获分组可通过\组号引用(外部用$组号),非捕获分组(?:、?=、?!)仅用于逻辑判断而不占用组号。这些特性使正则表达式成为文本处理的利器。

JDBC

JDBC

JDBC(Java DataBase Connectivity)是Java操作关系型数据库的统一API接口,由Sun公司定义,各数据库厂商提供实现(驱动jar包)。使用JDBC可屏蔽不同数据库差异,实现底层数据库的灵活替换。所有ORM框架(如MyBatis、Hibernate)本质上都是JDBC的高级封装。 快速入门步骤:注册驱动(`Class.forName`)、获取连接(`DriverManager.getConnection`)、定义SQL、获取`Statement`对象、执行SQL、处理`ResultSet`、释放资源。 核心API:`DriverManager`管理驱动和连接;`Connection`获取执行SQL对象并管理事务(`setAutoCommit`、`commit`、`rollback`);`Statement`执行SQL(`executeQuery`/`executeUpdate`/`execute`);`ResultSet`封装查询结果,通过`next()`遍历并用`getXxx()`获取数据;`PreparedStatement`预编译SQL避免注入,使用`?`占位符并调用`setXxx`赋值,支持预编译优化。 数据库连接池(如Druid)复用连接,提高效率和资源利用率。Druid使用步骤:导入jar包、配置`druid.properties`、加载配置、通过`DruidDataSourceFactory`创建`DataSource`、调用`getConnection`获取连接。

© 2026 日志记录