<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[MDD0828的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/MDD0828</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; MDD0828]]></copyright><item><title><![CDATA[Cocos Creator 3.8.8 + Xcode 26 真机编译失败：`is_floating_point cannot be specialized` 解决记录]]></title><link>https://blog.youkuaiyun.com/MDD0828/article/details/169266050</link><guid>https://blog.youkuaiyun.com/MDD0828/article/details/169266050</guid><author>MDD0828</author><pubDate>Tue, 27 Oct 2026 18:34:36 +0800</pubDate><description><![CDATA[Cocos Creator 3.8.8 在 Xcode 26.6 编译 iOS 真机时，因 enoki 库中对 std::is_floating_point 的显式特化触发 Clang 20 报错。根本原因是 Xcode 26 使用 libc++，不再允许此类特化。解决方案：在 half.h 中用 #ifdef __GLIBCXX__ 包裹特化代码，使 iOS 平台跳过编译，稳定解决编译失败问题。后续还需处理 libwebp.a 8 字节对齐问题，建议重打包或升级至 1.5.0 版本。该补丁需手动修改 Cr]]></description><category></category></item><item><title><![CDATA[CommandLineRunner 是什么？]]></title><link>https://blog.youkuaiyun.com/MDD0828/article/details/156135183</link><guid>https://blog.youkuaiyun.com/MDD0828/article/details/156135183</guid><author>MDD0828</author><pubDate>Sun, 21 Dec 2025 21:50:18 +0800</pubDate><description><![CDATA[Spring Boot的CommandLineRunner是一个在应用启动完成后执行初始化逻辑的关键接口。它会在所有Bean初始化完成后执行，适合进行系统级初始化操作，如缓存预热、配置校验等。文章详细介绍了其生命周期位置、基本用法（实现接口或@Bean方式）、参数处理、执行顺序控制，以及与ApplicationRunner的区别。特别强调了与@PostConstruct的适用场景差异：前者用于系统级初始化，后者用于Bean内部初始化。还提供了常见使用场景（如广告SDK初始化）和注意事项（避免阻塞主线程）。通]]></description><category></category></item><item><title><![CDATA[「个人 Gitee 仓库」与「企业 Gitee 仓库」同步的几种常见方式]]></title><link>https://blog.youkuaiyun.com/MDD0828/article/details/154488642</link><guid>https://blog.youkuaiyun.com/MDD0828/article/details/154488642</guid><author>MDD0828</author><pubDate>Thu, 06 Nov 2025 14:37:29 +0800</pubDate><description><![CDATA[摘要：本文介绍了5种同步个人Gitee仓库与企业Gitee仓库的方案：1）通过Git多远程push手动同步；2）利用Gitee企业版的仓库镜像功能自动同步；3）使用脚本定时同步；4）通过CI/CD工具自动同步；5）扩展至GitHub双向同步。根据不同场景推荐最佳方案：手动管理选方案1，自动同步选方案2，自动化部署选方案3/4，跨平台同步选方案5。各方案均详细说明配置方法，可根据实际需求灵活选择。]]></description><category></category></item><item><title><![CDATA[Cocos Creator 物理组件导致带Widget节点初始位置偏移]]></title><link>https://blog.youkuaiyun.com/MDD0828/article/details/148948907</link><guid>https://blog.youkuaiyun.com/MDD0828/article/details/148948907</guid><author>MDD0828</author><pubDate>Fri, 27 Jun 2025 11:16:32 +0800</pubDate><description><![CDATA[摘要： Cocos Creator 2.4中，同时使用Widget组件和物理组件（如RigidBody+PolygonCollider）时，节点初始位置可能因时序冲突发生偏移。原因是Widget在早期阶段完成布局计算后，物理引擎的初始模拟会轻微扰动节点位置。解决方案是在物理引擎首帧计算后（延迟一帧），调用Widget的updateAlignment()强制刷新布局，覆盖物理偏移。推荐使用setTimeout或scheduleOnce实现延迟调用，确保UI与物理系统的正确协同。若节点无需持续物理模拟，可临时禁]]></description><category></category></item><item><title><![CDATA[可以使用一个邓白氏编码来注册或验证多个开发者账号吗？]]></title><link>https://blog.youkuaiyun.com/MDD0828/article/details/144747349</link><guid>https://blog.youkuaiyun.com/MDD0828/article/details/144747349</guid><author>MDD0828</author><pubDate>Thu, 26 Dec 2024 16:17:44 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[1.2 计算机网络的分类和应用（重要知识点）]]></title><link>https://blog.youkuaiyun.com/MDD0828/article/details/144420197</link><guid>https://blog.youkuaiyun.com/MDD0828/article/details/144420197</guid><author>MDD0828</author><pubDate>Thu, 12 Dec 2024 10:48:11 +0800</pubDate><description><![CDATA[1.2.1 计算机网络的分类。]]></description><category></category></item><item><title><![CDATA[第一章 计算机网络概论]]></title><link>https://blog.youkuaiyun.com/MDD0828/article/details/144420097</link><guid>https://blog.youkuaiyun.com/MDD0828/article/details/144420097</guid><author>MDD0828</author><pubDate>Thu, 12 Dec 2024 10:46:51 +0800</pubDate><description><![CDATA[1.1小节：计算机网络的形成和发展（重要知识点）]]></description><category></category></item><item><title><![CDATA[软考“网络工程师教程”最新第六版本]]></title><link>https://blog.youkuaiyun.com/MDD0828/article/details/144404129</link><guid>https://blog.youkuaiyun.com/MDD0828/article/details/144404129</guid><author>MDD0828</author><pubDate>Wed, 11 Dec 2024 16:29:24 +0800</pubDate><description><![CDATA[有没有需要的要小伙伴， 最新版网络工程师 第六版。]]></description><category></category></item><item><title><![CDATA[java -jar ./target/pay.war ./target/pay.war 中没有主清单属 为什么？]]></title><link>https://blog.youkuaiyun.com/MDD0828/article/details/144298154</link><guid>https://blog.youkuaiyun.com/MDD0828/article/details/144298154</guid><author>MDD0828</author><pubDate>Fri, 06 Dec 2024 18:34:39 +0800</pubDate><description><![CDATA[JAR 包：用于直接通过java -jar运行 Spring Boot 应用。WAR 包：用于部署到外部 Tomcat 或其他 Web 容器中。如果你希望将应用打包为 JAR 并直接运行，修改pom.xml中的打包方式为jar即可。如果你希望使用java -jar启动应用，需要配置插件并使用 JAR 包。如果你希望使用外部 Tomcat 部署应用，则需要将pom.xml中的打包方式保持为war，并通过 Tomcat 部署 WAR 包。确保根据你的需求选择合适的打包方式（JAR 或 WAR）。]]></description><category></category></item><item><title><![CDATA[如何选择适合的布局容器：LinearLayout、FrameLayout 和 RelativeLayout 深度解析]]></title><link>https://blog.youkuaiyun.com/MDD0828/article/details/144216256</link><guid>https://blog.youkuaiyun.com/MDD0828/article/details/144216256</guid><author>MDD0828</author><pubDate>Tue, 03 Dec 2024 15:32:07 +0800</pubDate><description><![CDATA[和都是 Android 中常用的布局容器，它们适用于不同的布局需求。下面是对它们的详细解析以及它们之间的对比。]]></description><category></category></item><item><title><![CDATA[Android 俩个主题的不同之处 “Theme.AppCompat vs android:Theme.Material.Light.NoActionBar”]]></title><link>https://blog.youkuaiyun.com/MDD0828/article/details/144215959</link><guid>https://blog.youkuaiyun.com/MDD0828/article/details/144215959</guid><author>MDD0828</author><pubDate>Tue, 03 Dec 2024 15:24:40 +0800</pubDate><description><![CDATA[这两种主题继承关系有明显的不同，具体区别如下：如果你选择使用 ，并且希望使用 ，你仍然需要在  中确保引入适当的 AppCompat 主题，或者直接使用 ，以保证你的应用兼容性。例如：
这种方式同时保证了 Material Design 风格和 AppCompat 兼容性。]]></description><category></category></item><item><title><![CDATA[Google AdMob eCPM越来越低？揭秘原因与提升技巧！]]></title><link>https://blog.youkuaiyun.com/MDD0828/article/details/144110075</link><guid>https://blog.youkuaiyun.com/MDD0828/article/details/144110075</guid><author>MDD0828</author><pubDate>Thu, 28 Nov 2024 14:13:37 +0800</pubDate><description><![CDATA[随着移动应用市场的竞争日益激烈，许多开发者开始发现 Google AdMob 的 eCPM（每千次展示收益）逐渐下降。这不仅让开发者感到困惑，也让广告收益变得更加不稳定。那么，为什么会出现这种现象呢？有哪些潜在原因？又该如何有效提升收益呢？]]></description><category></category></item><item><title><![CDATA[什么是 Hook？为什么它是 Android 底层开发的核心技能？]]></title><link>https://blog.youkuaiyun.com/MDD0828/article/details/143968414</link><guid>https://blog.youkuaiyun.com/MDD0828/article/details/143968414</guid><author>MDD0828</author><pubDate>Fri, 22 Nov 2024 11:53:33 +0800</pubDate><description><![CDATA[Hook是一种技术手段，用于在程序运行时拦截、修改或扩展代码逻辑。通过 Hook，开发者可以在不修改原始代码的情况下，动态地插入自定义逻辑或改变程序行为。拦截方法调用：监控和修改方法的输入、输出或执行逻辑。修改系统行为：如替换系统服务、改变组件功能。实现插件化开发：动态加载和运行模块化功能。Hook 的核心价值解耦与扩展：无需修改原代码，便可动态增加功能。动态调试：调试和分析目标应用的行为，特别是闭源应用。功能增强：通过 Hook 技术，可以实现例如广告屏蔽、消息防撤回等功能。实现方式。]]></description><category></category></item><item><title><![CDATA[Hook 技术：修改 Android 系统属性，提升应用调试和定制化能力]]></title><link>https://blog.youkuaiyun.com/MDD0828/article/details/143968165</link><guid>https://blog.youkuaiyun.com/MDD0828/article/details/143968165</guid><author>MDD0828</author><pubDate>Fri, 22 Nov 2024 11:51:12 +0800</pubDate><description><![CDATA[你可以轻松地修改 Android 系统的属性，模拟不同设备环境，进行测试和调试。这种方式对于开发者来说，简直是一个必备的调试工具，能帮助你提高开发效率，同时绕过一些限制，灵活调试应用。这样，应用和系统就会认为你用的是 “FakeDeviceModel” 设备，而不是实际的设备型号。在 Android 中，Hook 技术可以帮助你在运行时修改应用或者系统的行为，甚至可以直接修改底层的。通过 Xposed，你可以编写一个简单的模块，在运行时 Hook Android 系统方法，并修改相关属性。]]></description><category></category></item><item><title><![CDATA[实现 MVC 模式]]></title><link>https://blog.youkuaiyun.com/MDD0828/article/details/143761075</link><guid>https://blog.youkuaiyun.com/MDD0828/article/details/143761075</guid><author>MDD0828</author><pubDate>Thu, 14 Nov 2024 10:48:45 +0800</pubDate><description><![CDATA[通过这种 MVC 实现，我们将数据、逻辑、和显示分开，使代码更清晰、更易维护。Spring Boot 提供的注解和自动配置大大简化了 MVC 模式的实现，并能很好地支持扩展和修改。]]></description><category></category></item><item><title><![CDATA[深入理解 MVC 与其他主流设计模式：架构精髓与实现方法详解]]></title><link>https://blog.youkuaiyun.com/MDD0828/article/details/143760642</link><guid>https://blog.youkuaiyun.com/MDD0828/article/details/143760642</guid><author>MDD0828</author><pubDate>Thu, 14 Nov 2024 10:42:01 +0800</pubDate><description><![CDATA[这些设计模式各有特点，适用于不同规模、复杂度和需求的应用。合理应用设计模式可以提高代码的复用性、可维护性和可扩展性。下个章节我们将实现设计模式提供代码参考。]]></description><category></category></item><item><title><![CDATA[简化 Java 开发：深入理解 Lombok 的 @Getter、@Setter 和 @NoArgsConstructor 注解]]></title><link>https://blog.youkuaiyun.com/MDD0828/article/details/143524052</link><guid>https://blog.youkuaiyun.com/MDD0828/article/details/143524052</guid><author>MDD0828</author><pubDate>Tue, 05 Nov 2024 19:49:19 +0800</pubDate><description><![CDATA[在 Java 开发中，样板代码（Boilerplate Code）是指那些重复、冗长、没有业务逻辑但必须存在的代码。例如，创建类的 getter 和 setter 方法、构造函数等。这些样板代码不仅增加了代码量，还使得代码变得难以维护。为了减少样板代码，Lombok 库提供了一些非常有用的注解，其中最常用的三个注解就是。]]></description><category></category></item><item><title><![CDATA[深入理解 RateLimiter 类与令牌桶限流机制：应用、使用与常见问题]]></title><link>https://blog.youkuaiyun.com/MDD0828/article/details/143522950</link><guid>https://blog.youkuaiyun.com/MDD0828/article/details/143522950</guid><author>MDD0828</author><pubDate>Tue, 05 Nov 2024 19:35:10 +0800</pubDate><description><![CDATA[在分布式系统中，限流是控制请求速率的一种重要手段，尤其是在高并发、高负载的场景中。是 Guava 库中提供的一个限流工具类，它实现了令牌桶限流算法，并被广泛应用于流量控制、API 接口限流等场景。令牌桶算法通过控制请求的速率来避免系统过载，并确保系统的稳定性。本文将详细讲解类的使用方法、其背后的令牌桶限流机制、常见应用场景以及常见问题的解决方案。是 Guava 提供的一个基于令牌桶算法的限流工具，适用于高并发、高负载的流量控制场景。通过可以轻松创建限流器，并通过acquire()方法控制请求速率。]]></description><category></category></item><item><title><![CDATA[【深入理解 @Async 和 CompletableFuture：异步编程的两种方式】]]></title><link>https://blog.youkuaiyun.com/MDD0828/article/details/143522881</link><guid>https://blog.youkuaiyun.com/MDD0828/article/details/143522881</guid><author>MDD0828</author><pubDate>Tue, 05 Nov 2024 19:31:04 +0800</pubDate><description><![CDATA[在现代应用程序中，异步编程是一种提高系统性能、响应性和可扩展性的重要手段。Spring 框架提供了@Async注解来简化异步方法的执行，而 Java 8 的则提供了一种更加灵活和功能丰富的方式来处理异步任务。本文将介绍这两种异步编程的方式，并对比它们的区别和应用场景。@Async是一种简单、易用的异步处理方式，适用于轻量级的异步任务，能够与 Spring 的其他功能（如事务管理）无缝集成。提供了更强大、更灵活的异步编程支持，适用于复杂的异步任务组合和错误处理。]]></description><category></category></item><item><title><![CDATA[解决 Spring 异步处理中的 JDK 动态代理问题及相关错误分析]]></title><link>https://blog.youkuaiyun.com/MDD0828/article/details/143522595</link><guid>https://blog.youkuaiyun.com/MDD0828/article/details/143522595</guid><author>MDD0828</author><pubDate>Tue, 05 Nov 2024 19:27:12 +0800</pubDate><description><![CDATA[如果目标类实现了接口，Spring 默认使用 JDK 动态代理来生成代理对象。问题出现的根本原因在于，JDK 动态代理生成的代理对象只实现接口，而不会将目标类本身作为代理类，因此在注入时会发生类型不匹配的错误。当你试图注入某个具体实现类时，却遇到了类型不匹配的错误，因为 Spring 使用的是基于接口的代理对象，而非实际的类对象。，或者直接注入接口类型，可以解决因使用 JDK 动态代理而导致的依赖注入问题。这样，Spring 将为目标类生成 CGLIB 代理，从而避免了基于接口的 JDK 动态代理问题。]]></description><category></category></item></channel></rss>