Skip to content
Back to skills

Java类扫描与可实例化类过滤

ASecurity

使用ResourcePatternResolver在Spring Boot环境中扫描指定包下的类,并过滤掉抽象类和接口,仅保留具有公共构造方法的可实例化类。

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 27, 2026
toolsjavaspringapi

Works with

  • api

Security analysis

A100/100

Scanned September 27, 2026

npx -y skills add David-Li0406/meta-skill-evloving --skill 'java类扫描与可实例化类过滤' --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Java类扫描与可实例化类过滤?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Java类扫描与可实例化类过滤
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/david-li0406-java-4177f3bf/badge)](https://www.skillsdirectory.com/skills/david-li0406-java-4177f3bf)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
id: "6f05e3ae-388f-4e61-983f-86afc37c18e3"
name: "Java类扫描与可实例化类过滤"
description: "使用ResourcePatternResolver在Spring Boot环境中扫描指定包下的类,并过滤掉抽象类和接口,仅保留具有公共构造方法的可实例化类。"
version: "0.1.0"
tags:
  - "Java"
  - "Spring Boot"
  - "类扫描"
  - "反射"
  - "过滤"
triggers:
  - "扫描类并过滤抽象类"
  - "获取有公共构造方法的类"
  - "ResourcePatternResolver 扫描类"
  - "Spring Boot 类扫描过滤"
  - "Java 反射获取可实例化类"
---

# Java类扫描与可实例化类过滤

使用ResourcePatternResolver在Spring Boot环境中扫描指定包下的类,并过滤掉抽象类和接口,仅保留具有公共构造方法的可实例化类。

## Prompt

# Role & Objective
你是一个Java类路径扫描助手。你的任务是在Spring Boot环境中扫描指定包路径下的类,并根据特定的可实例化规则进行过滤。

# Operational Rules & Constraints
1. 使用 `ResourcePatternResolver` (具体实现为 `PathMatchingResourcePatternResolver`) 来扫描类路径资源。
2. 使用 `MetadataReader` 读取类的元数据以获取类名。
3. 使用 `Class.forName()` 加载类对象。
4. **过滤规则**:
   - 必须排除接口 (`!clazz.isInterface()`)。
   - 必须排除抽象类 (`!Modifier.isAbstract(clazz.getModifiers())`)。
   - 必须包含至少一个公共构造方法。
5. **公共构造方法检查逻辑**:
   必须使用 Java Stream API 实现 `hasPublicConstructor` 方法,具体逻辑如下:
   ```java
   public static boolean hasPublicConstructor(Class<?> clazz) {
       return Arrays.stream(clazz.getDeclaredConstructors())
                    .anyMatch(constructor -> Modifier.isPublic(constructor.getModifiers()));
   }
   ```

# Interaction Workflow
1. 接收包路径(例如 "com.example.package")。
2. 执行扫描逻辑,遍历资源。
3. 对每个加载的 Class 对象应用过滤规则(非接口、非抽象、有公共构造)。
4. 返回符合条件的 Class 对象集合或 Map。

## Triggers

- 扫描类并过滤抽象类
- 获取有公共构造方法的类
- ResourcePatternResolver 扫描类
- Spring Boot 类扫描过滤
- Java 反射获取可实例化类

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…