<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://blog.yangxiaochen.com/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/about/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/archive/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/2022/0504-gradle-practice/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/2022/0531-understand-gradle-build-script/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/2022/0601-static-site-host-on-oss/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/2024/0619-groovy-script-cache/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/2024/0929-ddd-practice-in-code/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/2025/0509-spring-mvc-parameter-names/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/2025/1216-ai-assistant-programming-context-over-template/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/2025/1230-openspec-analysis/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/2025/1230-rbac-best-practices/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/2026/0126-margin-system-design/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/db/jooq-intro/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/design-and-thinking/2018-beijing-qcon/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/design-and-thinking/api-design/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/design-and-thinking/daily-experience/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/design-and-thinking/expressive-exception-lib/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/design-and-thinking/how-to-write-unittest/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/design-and-thinking/methodology/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/design-and-thinking/reading-notes-for-poeaa1/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/develop/rabbitmq-in-action/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/frontend/css-position/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/git/git-flow-in-action/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/git/git-in-action/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/git/git-in-use/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/groovy/groovy-tips-for-javaer/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/java/exception-in-action/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/java/exception-pattern/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/java/gradle-simple-introduction/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/java/how-to-deal-with-java-exception/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/java/pac4j-introduction/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/java/spring-mvc-multipart-error/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/java/spring-servlet-context-diffrence/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/java/spring-spring-mvc-initalize/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/java/springboot_dist/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/java/thread-coordinate-n-methods/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/mac/homebrew-install-old-version-soft/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/secure/a-lost-iphone-secure/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/stackoverflow/bean-not-found-becauseof-alias/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/stackoverflow/spring-aspectj-slow/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/blog/tools/linux-in-windows/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/design-practices/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/principles/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/projects/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/%E4%B8%8A%E4%BC%A0/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/%E4%BF%9D%E8%AF%81%E9%87%91/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/%E5%8D%95%E6%B5%8B/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/%E5%86%85%E5%AD%98%E6%B3%84%E6%BC%8F/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/%E5%88%9D%E5%A7%8B%E5%8C%96/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/%E5%90%AF%E5%8A%A8%E6%85%A2/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/%E5%A4%9A%E6%A8%A1%E5%9D%97%E9%A1%B9%E7%9B%AE%E6%9E%84%E5%BB%BA/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/%E5%BC%82%E5%B8%B8/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/%E5%BC%82%E5%B8%B8%E8%AE%BE%E8%AE%A1/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/%E6%8E%A5%E5%8F%A3%E8%AE%BE%E8%AE%A1/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/%E6%9D%83%E9%99%90/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/%E6%9E%B6%E6%9E%84/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/%E6%9E%B6%E6%9E%84%E5%B0%8F%E6%95%85%E4%BA%8B/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/%E9%9D%99%E6%80%81%E7%BD%91%E7%AB%99%E9%83%A8%E7%BD%B2/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/%E9%87%91%E8%9E%8D/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/ai/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/AI%E8%BE%85%E5%8A%A9%E7%BC%96%E7%A8%8B/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/api/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/aspectj/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/bean/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/bmad-method/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/brew/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/build.gradle/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/cas/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/code-and-thinking/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/context/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/db/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/ddd/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/debug/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/exception/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/frontend/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/git/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/gitflow/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/gradle/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/groovy/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/groovyshell/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/init/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/java/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/jooq/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/linux/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/mac/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/mq/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/OpenSpec/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/OSS/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/pac4j/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/programming/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/rabbitmq/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/RBAC/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/secure/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/shiro/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/spec-kit/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/spring-mvc/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/spring/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/spring%20mvc/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/stackoverflow/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/test/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/thread/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/tools/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/upload/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/vibe%20coding/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/Vibe%20Coding/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/web/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://blog.yangxiaochen.com/tags/windows/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url></urlset>