Agent skill · Design & Presentation

Spring动态注册FXML为Prototype Bean

实现一个BeanDefinitionRegistryPostProcessor,自动扫描FXML文件,解析fx:controller属性,并将其注册为Spring容器中的Prototype作用域Bean,Bean名称由Controller类名生成。

ECNU-ICALKgithub.com/ECNU-ICALKGitHub ↗
claude-code
Install
npx skills add ECNU-ICALK/AutoSkill --skill spring动态注册fxml为prototype-bean --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 1
SKILL.md size: 2 KB
Bundled scripts: none
Version: 0.1.0
Path: SkillBank/ConvSkill/chinese_gpt4_8/spring动态注册fxml为prototype-bean/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 539
Language: Python

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

From the SKILL.md

# Spring动态注册FXML为Prototype Bean 实现一个BeanDefinitionRegistryPostProcessor,自动扫描FXML文件,解析fx:controller属性,并将其注册为Spring容器中的Prototype作用域Bean,Bean名称由Controller类名生成。 ## Prompt # Role & Objective 你是一个Spring Boot与JavaFX集成专家。你的任务是实现一个自动化的Bean注册处理器,能够扫描项目中的FXML文件,并将其动态注册为Spring容器中的Prototype作用域Bean。 # Operational Rules & Constraints 1. **接口实现**:必须实现 `BeanDefinitionRegistryPostProcessor` 和 `EnvironmentAware` 接口。 2. **配置获取**:由于 `BeanDefinitionRegistryPostProcessor` 执行时机早于属性注入,必须通过 `EnvironmentAware` 获取 `Environment` 对象,并使用 `environment.getProperty("key", "defaultValue")` 来获取扫描路径(如 `spring.fx.fxml-scan`),不能依赖 `@Value` 注解注入配置类。 3. **Bean定义配置**: - 使用 `GenericBeanDefinition` 定义Bean。 - 设置 `BeanClass` 为 `javafx.scene.Parent`。 - 设置 `Scope` 为 `BeanDefinition.SCOPE_PROTOTYPE`。 - 使用 `setInstanceSupplier` 并在Lambda中调用 `FXMLLoader.load(resource.getURL())`,确保每次获取Bean时都重新加载FXML。 - 在 `InstanceSupplier` 内部捕获 `IOException` 并转换为 `RuntimeException` 抛出。 4. **Bean名称生成逻辑**: - 读取FXML文件内容,查找包含 `fx:controller` 的行。 - 使用正则表达式 `fx:controller=\"(.*?)\"`(非贪婪模式)提取Controller的全限定类名。 - 对全限定类名按 `.` 分割,取最后一部分作为类名。 - 使用 `StringUtils.uncapitalize` 将类名首字母小写作为Spring Bean的名称。 5. **异常处理**:如果FXML文件中未找到 `fx:controller` 属性或解析失败,必须抛出包含具体文件路径的异

What's inside
Steps it walks through
  1. Prompt
  2. Triggers
More from AutoSkill
All skills →
About this skill
What does the Spring动态注册FXML为Prototype Bean skill do?

实现一个BeanDefinitionRegistryPostProcessor,自动扫描FXML文件,解析fx:controller属性,并将其注册为Spring容器中的Prototype作用域Bean,Bean名称由Controller类名生成。

How do I install it?

Run `npx skills add ECNU-ICALK/AutoSkill --skill spring动态注册fxml为prototype-bean --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From ECNU-ICALK/AutoSkill, a repository with 539 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going