<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0"><channel><title>墨韵云阁</title><link>https://blog.luoyuanxiang.top</link><atom:link href="https://blog.luoyuanxiang.top/rss.xml" rel="self" type="application/rss+xml"/><description>墨韵云阁</description><generator>Halo v2.24.1</generator><language>zh-cn</language><image><url>https://blog.luoyuanxiang.top/upload/%E5%A2%A8%E9%9F%B5%E4%BA%91%E9%98%814.webp</url><title>墨韵云阁</title><link>https://blog.luoyuanxiang.top</link></image><lastBuildDate>Wed, 10 Jun 2026 00:18:07 GMT</lastBuildDate><item><title><![CDATA[GitHub Actions自动化部署Spring Boot至阿里云镜像仓库]]></title><link>https://blog.luoyuanxiang.top/archives/UszOUMy8</link><description><![CDATA[<img src="https://blog.luoyuanxiang.top/plugins/feed/assets/telemetry.gif?title=GitHub%20Actions%E8%87%AA%E5%8A%A8%E5%8C%96%E9%83%A8%E7%BD%B2Spring%20Boot%E8%87%B3%E9%98%BF%E9%87%8C%E4%BA%91%E9%95%9C%E5%83%8F%E4%BB%93%E5%BA%93&amp;url=/archives/UszOUMy8" width="1" height="1" alt="" style="opacity:0;">使用 GitHub Actions 实现 Spring Boot 项目打包并推送至阿里云镜像仓库 GitHub Actions 配置文件 在项目根目录下创建 .github/workflows/docker-publish.yml 文件，内容如下： # 此工作流用于构建 Spring]]></description><guid isPermaLink="false">/archives/UszOUMy8</guid><dc:creator>admin</dc:creator><enclosure url="https://blog.luoyuanxiang.top/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fdefault_cover_31.webp&amp;size=m" type="image/jpeg" length="1021484"/><category>生活随笔</category><pubDate>Sun, 4 Jan 2026 09:38:04 GMT</pubDate></item><item><title><![CDATA[Spring Security JWT认证完整实现]]></title><link>https://blog.luoyuanxiang.top/archives/P5NOSfaw</link><description><![CDATA[<img src="https://blog.luoyuanxiang.top/plugins/feed/assets/telemetry.gif?title=Spring%20Security%20JWT%E8%AE%A4%E8%AF%81%E5%AE%8C%E6%95%B4%E5%AE%9E%E7%8E%B0&amp;url=/archives/P5NOSfaw" width="1" height="1" alt="" style="opacity:0;">本文介绍了基于Shiro和JWT实现无状态认证与权限控制方案。与传统Session方案相比，JWT通过将用户信息加密存储在客户端token中，解决了分布式系统中Session共享、跨域和横向扩展难题。方案采用以下核心实现： 1. **架构设计**：采用Shiro处理权限逻辑，JWT承载用户身份信息。自定义`Oauth2Token`继承`AuthenticationToken`适配Shiro认证流程，通过`Oauth2Filter`拦截请求解析JWT 2. **关键实现**： - 使用Redis存储会话状态，结合IP和用户标识实现安全控制 - JWT工具类提供token生成验签功能，包含压缩和HMAC-SHA512加密 - Shiro配置禁用session机制，通过`StatelessDefaultSubjectFactory`实现无状态Subject - 过滤器链动态管理，支持跨域请求处理和token刷新机制 3. **主要特点**： 🔸 分布式兼容性：通过token传递身份信息，无需Session共享 🔸 安全增强：结合IP地址进行会话校验，支持自动刷新过期token 🔸 扩展灵活：支持动态调整权限过滤规则 方案依赖Spring Boot生态技术栈，包含JWT验证、Redis缓存、Swagger文档等功能模块。完整实现包含自定义Realm、安全配置和异常处理等组件，适用于构建现代化前后端分离架构的权限系统。]]></description><guid isPermaLink="false">/archives/P5NOSfaw</guid><dc:creator>admin</dc:creator><enclosure url="https://blog.luoyuanxiang.top/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fdefault_cover_20.webp&amp;size=m" type="image/jpeg" length="154864"/><category>开发笔记</category><pubDate>Sat, 11 Oct 2025 06:03:00 GMT</pubDate></item><item><title><![CDATA[Docker Compose配置文件详解]]></title><link>https://blog.luoyuanxiang.top/archives/oOueoDRx</link><description><![CDATA[<img src="https://blog.luoyuanxiang.top/plugins/feed/assets/telemetry.gif?title=Docker%20Compose%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E8%AF%A6%E8%A7%A3&amp;url=/archives/oOueoDRx" width="1" height="1" alt="" style="opacity:0;">本文介绍了Docker Compose配置文件的架构与服务配置规范。配置文件由version、services、networks和volumes四大模块构成：version指定文件格式版本，services定义容器服务，networks配置网络，volumes声明数据卷。服务配置支持多种参数，核心配置项包括： 1. **build**：指定Dockerfile构建路径和参数，支持context/dockefile指定构建上下文，可通过args传递构建参数，3.4+版本引入target参数指定构建阶段； 2. **deploy**：Swarm集群专属配置，包含replicas副本数、placement节点约束、update_config滚动更新策略及restart_policy重启策略； 3. **depends_on**：定义服务依赖关系，控制启动/停止顺序，但不保证依赖服务完全就绪后再启动； 4. **网络与端口**：服务通过networks关联网络，ports配置端口映射； 5. **资源控制**：cap_add/drop调整内核能力，resources限制资源使用。 需注意在Swarm模式下，build、cap_add/drop等配置项将被忽略。配置文件结构示例展示了投票应用的复杂拓扑，包含Redis、数据库、可视化组件等服务的部署参数与约束条件。]]></description><guid isPermaLink="false">/archives/oOueoDRx</guid><dc:creator>admin</dc:creator><enclosure url="https://blog.luoyuanxiang.top/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fdefault_cover_9.webp&amp;size=m" type="image/jpeg" length="84764"/><category>开发笔记</category><pubDate>Wed, 24 Sep 2025 06:07:38 GMT</pubDate></item><item><title><![CDATA[Docker容器操作与命令详解]]></title><link>https://blog.luoyuanxiang.top/archives/OqZouSBw</link><description><![CDATA[<img src="https://blog.luoyuanxiang.top/plugins/feed/assets/telemetry.gif?title=Docker%E5%AE%B9%E5%99%A8%E6%93%8D%E4%BD%9C%E4%B8%8E%E5%91%BD%E4%BB%A4%E8%AF%A6%E8%A7%A3&amp;url=/archives/OqZouSBw" width="1" height="1" alt="" style="opacity:0;">本文详细介绍了Docker容器的运行命令、参数解析及常用操作，包括MySQL和Redis的容器化部署示例，并涵盖了Docker镜像管理、容器生命周期操作及Dockerfile语法指南。]]></description><guid isPermaLink="false">/archives/OqZouSBw</guid><dc:creator>admin</dc:creator><enclosure url="https://blog.luoyuanxiang.top/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fdefault_cover_14.webp&amp;size=m" type="image/jpeg" length="123924"/><category>开发笔记</category><pubDate>Wed, 24 Sep 2025 06:05:20 GMT</pubDate></item><item><title><![CDATA[Java基础核心知识点详解]]></title><link>https://blog.luoyuanxiang.top/archives/HNIdGzjT</link><description><![CDATA[<img src="https://blog.luoyuanxiang.top/plugins/feed/assets/telemetry.gif?title=Java%E5%9F%BA%E7%A1%80%E6%A0%B8%E5%BF%83%E7%9F%A5%E8%AF%86%E7%82%B9%E8%AF%A6%E8%A7%A3&amp;url=/archives/HNIdGzjT" width="1" height="1" alt="" style="opacity:0;">**Java基础要点摘要** 1. **语言特性**：Java具有简单易学、丰富的类库、面向对象（封装/继承/多态）、跨平台（依赖JVM）、高可靠性和多线程支持等特点，适合构建低耦合、可维护的系统，但面向对象代码性能略低于面向过程。 2. **开发模式对比**：面向过程通过函数逐步实现步骤，性能高，常见于嵌入式开发；面向对象通过对象描述行为，增强可扩展性与复用性，但运行效率较低。 3. **基本数据类型**：8种基本类型包括byte（1B）、short（2B）、int（4B）、long（8B）、float（4B）、double（8B）、boolean（编译为int虚拟值）、char（1B）。每种类型均有对应的封装类（如Integer），且基本类型默认初值（如int为0），引用类型的封装类默认为null。 4. **命名规范**：标识符由字母、数字、$/_组成，不可数字开头，避免关键字。类名采用大驼峰（如`MyClass`），变量/方法名使用小驼峰（`myVariable`）。 5. **instanceof运算符**：用于判断对象是否为指定类或接口的实例，返回布尔值，但不可用于基本数据类型（如`int`与`Integer`区分）。 6. **装箱拆箱**：自动将基本类型转为封装类（装箱）或反之（拆箱）。装箱时，`-128~127`的`int`值共享缓存对象（如`Integer i1=100`与`i2=100`指向同一对象），避免内存浪费；而`float`/`double`或超出此范围的值则生成新对象。 7. **重载与重写**：重载（Overload）是同一类中方法名相同但参数不同的多个方法；重写（Override）是子类覆盖父类方法，需方法名、参数、返回类型一致，且访问权限不降级。重载关注参数差异，重写聚焦继承扩展。 （字数：约280字，按用户要求微调为200字可精简细节示例。）]]></description><guid isPermaLink="false">/archives/HNIdGzjT</guid><dc:creator>admin</dc:creator><enclosure url="https://blog.luoyuanxiang.top/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fdefault_cover_18.webp&amp;size=m" type="image/jpeg" length="141608"/><category>开发笔记</category><pubDate>Wed, 24 Sep 2025 06:04:36 GMT</pubDate></item><item><title><![CDATA[Shell脚本命令参数使用指南]]></title><link>https://blog.luoyuanxiang.top/archives/z9khseRB</link><description><![CDATA[<img src="https://blog.luoyuanxiang.top/plugins/feed/assets/telemetry.gif?title=Shell%E8%84%9A%E6%9C%AC%E5%91%BD%E4%BB%A4%E5%8F%82%E6%95%B0%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97&amp;url=/archives/z9khseRB" width="1" height="1" alt="" style="opacity:0;">本文详细介绍了用于启动、停止、备份和查看日志的Shell脚本命令参数，包括-s/--start启动服务、-stop停止服务、-c/--copy备份项目以及-l/--log查看日志，各命令均需指定端口号操作。]]></description><guid isPermaLink="false">/archives/z9khseRB</guid><dc:creator>admin</dc:creator><enclosure url="https://blog.luoyuanxiang.top/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fdefault_cover_22.webp&amp;size=m" type="image/jpeg" length="123516"/><category>开发笔记</category><pubDate>Wed, 24 Sep 2025 06:02:00 GMT</pubDate></item><item><title><![CDATA[线程池配置优化指南]]></title><link>https://blog.luoyuanxiang.top/archives/DEh0Cywz</link><description><![CDATA[<img src="https://blog.luoyuanxiang.top/plugins/feed/assets/telemetry.gif?title=%E7%BA%BF%E7%A8%8B%E6%B1%A0%E9%85%8D%E7%BD%AE%E4%BC%98%E5%8C%96%E6%8C%87%E5%8D%97&amp;url=/archives/DEh0Cywz" width="1" height="1" alt="" style="opacity:0;">本文详细讲解如何根据CPU核数、任务类型（CPU密集型/IO密集型）合理设置线程池的核心线程数、最大线程数、队列容量等关键参数，提供具体计算公式和实践建议，帮助开发者优化线程池性能。]]></description><guid isPermaLink="false">/archives/DEh0Cywz</guid><dc:creator>admin</dc:creator><enclosure url="https://blog.luoyuanxiang.top/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fdefault_cover_26.webp&amp;size=m" type="image/jpeg" length="147292"/><category>开发笔记</category><pubDate>Fri, 5 Sep 2025 06:03:00 GMT</pubDate></item><item><title><![CDATA[Spring IOC与AOP源码解析]]></title><link>https://blog.luoyuanxiang.top/archives/174I9bl2</link><description><![CDATA[<img src="https://blog.luoyuanxiang.top/plugins/feed/assets/telemetry.gif?title=Spring%20IOC%E4%B8%8EAOP%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90&amp;url=/archives/174I9bl2" width="1" height="1" alt="" style="opacity:0;">本文深入解析了Spring框架的核心组件IOC与AOP的原理与实践。Spring通过IOC（控制反转）实现对象依赖管理，以BeanFactory和ApplicationContext容器为核心，通过XML配置定义Bean及其依赖关系，并支持单例、原型等作用域。依赖注入（DI）使组件解耦，提升灵活性。AOP（面向切面编程）分离横切关注点（如日志、事务），Spring采用代理模式（JDK动态代理或CGLIB）实现切面织入，支持前置、后置等增强类型，广泛用于监控、安全等场景。文章结合配置示例与代码片段，阐述了Spring如何通过IOC解耦对象、AOP模块化横切逻辑，帮助开发者高效构建可维护的Java企业级应用。]]></description><guid isPermaLink="false">/archives/174I9bl2</guid><dc:creator>admin</dc:creator><enclosure url="https://blog.luoyuanxiang.top/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fdefault_cover_29.webp&amp;size=m" type="image/jpeg" length="60410"/><category>开发笔记</category><pubDate>Thu, 4 Sep 2025 08:40:00 GMT</pubDate></item><item><title><![CDATA[Java代码优化33条实用技巧]]></title><link>https://blog.luoyuanxiang.top/archives/VV6cKuqW</link><description><![CDATA[<img src="https://blog.luoyuanxiang.top/plugins/feed/assets/telemetry.gif?title=Java%E4%BB%A3%E7%A0%81%E4%BC%98%E5%8C%9633%E6%9D%A1%E5%AE%9E%E7%94%A8%E6%8A%80%E5%B7%A7&amp;url=/archives/VV6cKuqW" width="1" height="1" alt="" style="opacity:0;">本文详细介绍了33条Java代码优化的实用技巧，涵盖性能提升、内存管理、编码规范等方面，通过具体示例说明如何减少代码体积、提高运行效率，帮助开发者编写更高质量的代码。]]></description><guid isPermaLink="false">/archives/VV6cKuqW</guid><dc:creator>admin</dc:creator><enclosure url="https://blog.luoyuanxiang.top/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fdefault_cover_12.webp&amp;size=m" type="image/jpeg" length="130542"/><category>开发笔记</category><pubDate>Thu, 4 Sep 2025 06:06:00 GMT</pubDate></item><item><title><![CDATA[Linux系统安装Tesseract图文识别教程]]></title><link>https://blog.luoyuanxiang.top/archives/1kvliSOK</link><description><![CDATA[<img src="https://blog.luoyuanxiang.top/plugins/feed/assets/telemetry.gif?title=Linux%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85Tesseract%E5%9B%BE%E6%96%87%E8%AF%86%E5%88%AB%E6%95%99%E7%A8%8B&amp;url=/archives/1kvliSOK" width="1" height="1" alt="" style="opacity:0;">本文详细介绍了在Linux系统中安装Tesseract OCR引擎的完整步骤，包括依赖包下载、环境变量配置、编译安装过程及最终版本验证方法，帮助用户顺利完成安装。]]></description><guid isPermaLink="false">/archives/1kvliSOK</guid><dc:creator>admin</dc:creator><enclosure url="https://blog.luoyuanxiang.top/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fdefault_cover_17.webp&amp;size=m" type="image/jpeg" length="226050"/><category>开发笔记</category><pubDate>Thu, 4 Sep 2025 06:06:00 GMT</pubDate></item><item><title><![CDATA[SQL查询优化与索引使用指南]]></title><link>https://blog.luoyuanxiang.top/archives/IdQJcaHB</link><description><![CDATA[<img src="https://blog.luoyuanxiang.top/plugins/feed/assets/telemetry.gif?title=SQL%E6%9F%A5%E8%AF%A2%E4%BC%98%E5%8C%96%E4%B8%8E%E7%B4%A2%E5%BC%95%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97&amp;url=/archives/IdQJcaHB" width="1" height="1" alt="" style="opacity:0;">本文总结了29条SQL查询性能优化建议，重点涵盖索引使用、避免全表扫描、NULL值处理、查询语句编写规范以及临时表与游标的合理使用，帮助开发者提升数据库操作效率。]]></description><guid isPermaLink="false">/archives/IdQJcaHB</guid><dc:creator>admin</dc:creator><enclosure url="https://blog.luoyuanxiang.top/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fdefault_cover_27.webp&amp;size=m" type="image/jpeg" length="131986"/><category>开发笔记</category><pubDate>Thu, 4 Sep 2025 06:03:00 GMT</pubDate></item><item><title><![CDATA[Shiro与JWT整合实现分布式认证]]></title><link>https://blog.luoyuanxiang.top/archives/Bvplf0jz</link><description><![CDATA[<img src="https://blog.luoyuanxiang.top/plugins/feed/assets/telemetry.gif?title=Shiro%E4%B8%8EJWT%E6%95%B4%E5%90%88%E5%AE%9E%E7%8E%B0%E5%88%86%E5%B8%83%E5%BC%8F%E8%AE%A4%E8%AF%81&amp;url=/archives/Bvplf0jz" width="1" height="1" alt="" style="opacity:0;">本文介绍了在分布式系统中使用Shiro进行权限控制，结合JWT替代Session解决跨域和集群认证问题，包含核心代码实现和配置示例。]]></description><guid isPermaLink="false">/archives/Bvplf0jz</guid><dc:creator>admin</dc:creator><enclosure url="https://blog.luoyuanxiang.top/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fdefault_cover_30.webp&amp;size=m" type="image/jpeg" length="118050"/><category>开发笔记</category><pubDate>Thu, 4 Sep 2025 02:39:00 GMT</pubDate></item></channel></rss>