📄🦌🙌🐟🏖️
日志记录
Where there is a where there is a way
随机文章
按住 Shift 横向滚动
热门文章
按住 Shift 横向滚动
搭建Maven本地仓库

搭建Maven本地仓库

本文介绍了Maven私服Nexus的安装、配置与使用方法。首先,下载解压Nexus后通过`nexus /run nexus`启动,默认访问地址为`http://localhost:8081`,登录账号为admin,密码保存在`admin.password`文件中。Nexus默认包含maven-central、maven-releases、maven-snapshots和maven-public四个Maven仓库,其中public为仓库组。需修改代理仓库地址为阿里云镜像,并允许匿名访问。在IDEA中,需配置`settings.xml`的servers和mirrors,并在pom.xml中定义distributionManagement以实现资源的上传与下载。此外,还介绍了Docker快速搭建方式:拉取`sonatype/nexus3`镜像,创建挂载目录并启动容器。通过WebUI可创建、分组及上传资源。

Maven进阶

Maven进阶

本文介绍了Maven在项目开发中的核心实践,包括分模块开发、聚合、继承、属性管理、版本命名、资源配置、跳过测试及外部jar包安装。分模块是将项目拆解为多个独立模块,通过pom文件管理依赖,便于团队协作。聚合通过父pom统一管理子模块,确保模块间依赖同步更新。继承将公共依赖版本在父工程中统一管理,子模块无需指定版本,避免版本冲突。属性用自定义标签存储版本号,便于统一维护。版本命名采用SNAPSHOT(快照)和RELEASE(发布)规范。资源配置允许在pom中定义配置值,通过过滤机制注入到yaml文件。跳过测试可通过IDE、maven命令或pom配置实现。外部jar包通过`mvn install:install-file`命令安装至本地仓库。拆分项目时需注意父模块采用BOM导入方式管理依赖,子模块继承父模块并显式启用打包插件,同时确保mapper文件能被扫描到。

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管理)、**命令模式**(将请求封装为对象,支持撤销、排队和宏命令)、**状态模式**(状态驱动行为变化,简化状态转换逻辑)以及**迭代器、中介者、备忘录、解释器、访问者模式**。这些模式通过解耦调用者与执行者、集中控制交互、分离数据结构与操作等方式,解决了实际开发中的复杂交互问题,提升了代码的可维护性和扩展性。

© 2026 日志记录