Community寫作與編輯github.com

Jamie-BitFlight/enterprise-spring-xml

使用 Dasel v3 選擇器查詢 Spring Bean Factory XML — 適用於任何 Spring ApplicationContext XML 中的 Bean 發現、依賴注入分析、JMS 目的地映射、屬性注入提取或跨 Bean 引用追蹤。在針對 Spring Bean XML 檔案(applicationContext.xml、*_beans.xml、spring-*.xml)撰寫 Dasel 選擇器前,請先載入此技能。

enterprise-spring-xml 是什麼?

此技能提供專為 Dasel v3 設計的選擇器模式,用於查詢 Spring Bean Factory XML 文件。它能協助開發者或 AI 代理從 Spring ApplicationContext XML 檔案(如 applicationContext.xml、*_beans.xml 或 spring-*.xml)中發現 Bean、分析依賴關係、追蹤 JMS 目的地映射、提取屬性注入(包括 `${...}` 佔位符)以及執行跨 Bean 引用追蹤。支援的查詢包括 Bean ID 與類別篩選、基於正則表達式的類別匹配、透過 `property` 子元素的依賴注入分析、JMS 目的地關聯查詢,以及實際路由文字的提取。技能文件詳細說明瞭 Dasel 友好模式下的屬性前綴規則(如 `-id`、`-class`)以及命名空間處理方式,並提供可套用於多檔案比對分析的實用範例。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Jamie-BitFlight/claude_skills/tree/main/plugins/dasel/skills/enterprise-spring-xml

Installed? Explore more 寫作與編輯 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Spring Bean Factory XML — Dasel v3 查詢模式

<when_to_use>

當你需要查詢任何 Spring Bean XML 檔案 — applicationContext.xml、*_beans.xml、spring-context.xml 或任何 Spring ApplicationContext XML — 以進行 Bean 發現、依賴分析、JMS 接線、屬性注入稽核或跨 Bean 引用追蹤時,請載入此技能。

</when_to_use>

適用於 Spring Bean Factory XML 的 Dasel v3 選擇器模式。務必明確加上 -i xml 參數。

屬性前綴規則: Dasel 友好模式(預設)會為 XML 屬性加上 - 前綴。id 屬性變成 -id,class 變成 -class。文字內容則為 #text。

Bean 發現

# 所有 Bean ID
cat chaosrouter_beans.xml | dasel -i xml 'beans.bean.filter(has("-id")).map("-id")'

# 所有 Bean 類別
cat chaosrouter_beans.xml | dasel -i xml 'beans.bean.filter(has("-class")).map("-class")'

# 對每個 Bean 取 -class(包含沒有 -id 的 Bean)
cat chaosrouter_beans.xml | dasel -i xml 'beans.bean.map("-class")'

類別模式匹配

透過 -class 上的正則表達式篩選 Bean。

# 類別名稱包含 JmsTemplate 的 Bean
cat chaosrouter_beans.xml | dasel -i xml 'beans.bean.filter(-class ~ ".*JmsTemplate.*").map("-id")'

# 統計符合類別模式的 Bean 數量
cat beans.xml | dasel -i xml 'len(beans.bean.filter(-class ~ ".*Jms.*"))'

依賴注入分析

透過 property 子元素的 -ref 屬性來尋找參照其他 Bean 的 Bean。

模式: parentCollection.filter(childElement.filter(condition).len($this) > 0) — 透過檢查是否存在符合條件的子元素(長度大於 0)來篩選父層。

# 透過 ref 屬性參照特定 Bean ID 的 Bean
cat chaosrouter_beans.xml | dasel -i xml 'beans.bean.filter(property.filter(-ref == "targetBeanId").len($this) > 0).map("-id")'

JMS 目的地映射

透過 property 子元素來尋找哪些 Bean 使用了哪些 JMS 目的地。

# 連線到特定目的地屬性的 Bean
cat integrationpoint_beans.xml | dasel -i xml 'beans.bean.filter(property.filter(-name == "destination").len($this) > 0).map("-id")'

屬性注入提取

從 Bean 定義中提取外部化的 ${...} 佔位符值。

# 所有使用 ${...} 佔位符的屬性值
cat storage_beans.xml | dasel -i xml 'beans.bean.property.filter(-value ~ ".*\\$\\{.*\\}.*").map("-value")'

屬性與文字內容存取

# <bean id="myBean" class="com.example.Foo">some text</bean>
cat beans.xml | dasel -i xml 'beans.bean[0].-id'       # myBean
cat beans.xml | dasel -i xml 'beans.bean[0].-class'    # com.example.Foo
cat beans.xml | dasel -i xml 'beans.bean[0].#text'     # some text

# 探查第一個 Bean 上的所有鍵(屬性 + 子元素)
cat beans.xml | dasel -i xml 'beans.bean[0].keys($this)'

命名空間處理

友好模式會從元素名稱中移除命名空間前綴 — 這對大多數 Spring 查詢已足夠。

當命名空間前綴導致選擇器失敗(元素明明存在卻找不到)時,請切換到結構模式:

cat spring-context.xml | dasel -i xml --read-flag xml-mode=structured 'beans.bean[0]'

跨檔案分析

將中間結果寫入 /tmp/ — 切勿寫入原始碼目錄。

# 從多個檔案提取 Bean ID 並進行比對
cat chaosrouter_beans.xml | dasel -i xml 'beans.bean.filter(has("-id")).map("-id")' > /tmp/chaosrouter_beans.txt
cat integrationpoint_beans.xml | dasel -i xml 'beans.bean.filter(has("-id")).map("-id")' > /tmp/integration_beans.txt
diff /tmp/chaosrouter_beans.txt /tmp/integration_beans.txt

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

Jamie-BitFlight/agentskill-kaizen-meta-docs

Agentskill kaizen plugin documentation index. Load when needing to read about cross-platform notes, improvement plans, or DuckDB integration.

Jamie-BitFlight/bash-51-features

Bash 5.1 release features and improvements with practical examples. Use when working with Bash 5.1 features, epoch time variables, redirection enhancements, or when user asks about Bash 5.1 changes, new features, or version-specific capabilities.

Jamie-BitFlight/bash-52-features

Bash 5.2 release features and improvements with practical examples. Use when working with Bash 5.2 features, variable handling enhancements, readline improvements, or when user asks about Bash 5.2 changes, new features, or version-specific capabilities.

Jamie-BitFlight/bash-53-features

Bash 5.3 release features and improvements with practical examples. Use when working with Bash 5.3 features, new command substitution, GLOBSORT, loadable builtins, or when user asks about Bash 5.3 changes, new features, or version-specific capabilities.

Jamie-BitFlight/bash-development

This skill should be used when the user asks to "write a bash script", "create a shell script", "implement bash function", "parse arguments in bash", "handle errors in bash", or mentions bash development, shell scripting, script templates, or modern bash patterns.

Jamie-BitFlight/bash-lint

This skill should be used when the user asks to "lint bash script", "run shellcheck", "format shell script", "use shfmt", "fix shellcheck errors", or mentions shell script linting, formatting, code quality, or pre-commit hooks for bash.

Jamie-BitFlight/bash-logging

This skill should be used when the user asks to "add logging to bash script", "colorize output", "implement log levels", "CI/CD sections", "terminal colors in bash", or mentions logging functions, emoji output, collapsible CI sections, or shlocksmith.

Jamie-BitFlight/bash-portability

This skill should be used when the user asks about "POSIX compatibility", "portable shell scripts", "cross-shell compatibility", "bashisms", "shebang selection", or mentions writing scripts that work on different shells (bash, sh, dash, zsh) or different systems.

Jamie-BitFlight/bash-testing

This skill should be used when the user asks to "test bash script", "write shell tests", "use shunit2", "use shellspec", "create test suite for bash", or mentions unit testing, test frameworks, mocking, or test-driven development for shell scripts.

Jamie-BitFlight/brainstorming-skill

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or when users request help with ideation, marketing, and strategic planning. Explores user intent, requirements, and design before implementation using research-validated prompt patterns.

Jamie-BitFlight/clang-format

Configure clang-format code formatting. Use when: user mentions clang-format or .clang-format, analyzing code style/patterns, creating/modifying formatting config, troubleshooting formatting, brace styles/indentation/spacing/alignment/pointer alignment, or codifying conventions.

Jamie-BitFlight/commitlint

When setting up commit message validation for a project. When project has commitlint.config.js or .commitlintrc files. When configuring CI/CD to enforce commit format. When extracting commit rules for LLM prompt generation. When debugging commit message rejection errors.

Jamie-BitFlight/conventional-commits

When writing a git commit message. When task completes and changes need committing. When project uses semantic-release, commitizen, git-cliff. When choosing between feat/fix/chore/docs types. When indicating breaking changes. When generating changelogs from commit history.

Jamie-BitFlight/dasel-reference

Use when querying, modifying, or converting JSON, YAML, TOML, XML, CSV, HCL, or INI with dasel v3. Complete reference for selectors, functions, conditionals, variables, spread operator, type casting, and format-specific patterns.

Jamie-BitFlight/data-exploration

Use when exploring unknown structured data files with dasel v3 — discover schema, list keys, find nested values, sample arrays, identify data types across JSON, YAML, TOML, XML, CSV, HCL, INI formats

Jamie-BitFlight/data-transformation

Use when modifying, converting, or transforming structured data with dasel v3 — in-place mutations, format conversion, batch operations, array manipulation, object construction, and merge patterns across JSON, YAML, TOML, XML, CSV, HCL, INI

Jamie-BitFlight/delegate

Decompose substantive work into phases, dispatch each phase to a sub-agent, and adjudicate what comes back. Use whenever a request asks for implementation, investigation, a fix, a review, or any change to files — including small ones — and whenever you are about to read source or run a diagnostic yourself instead of handing it off. Also use when a report from a sub-agent needs judging, when a phase needs re-dispatching, or when a user names one instance of a pattern. Does not apply when your own prompt begins "Your ROLE_TYPE is sub-agent." — then follow references/sub-agent-contract.md instead.

Jamie-BitFlight/enterprise-hibernate-hbm

Dasel v3 query patterns for Hibernate .hbm.xml mapping files — entity-table binding, Java property-to-column extraction, one-to-many set/list/bag relationship tracing, many-to-one foreign key discovery, batch scanning across 60+ HBM files. Use when querying Hibernate ORM class mappings, extracting schema metadata from Java persistence layer, or auditing entity-column relationships in enterprise legacy codebases.

Jamie-BitFlight/enterprise-installanywhere

Dasel v3 query patterns for InstallAnywhere .iap_xml installer definitions — use when querying action sequences, discovering variables, resolving platform conditions, navigating panels, or comparing installer variants. Files are 2.5+ MB, 65,000+ lines — too large for context reads, requires structural dasel queries.

Jamie-BitFlight/enterprise-maven-pom

Dasel v3 selector patterns for Maven POM XML files — use when querying dependency versions, filtering by groupId or scope, extracting module hierarchy from parent POMs, or detecting version conflicts across enterprise multi-module Java projects. Load this skill when working with pom.xml files using dasel.

相關技能