Skip to content
Back to skills

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

ASecurity

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

  • 611 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 11, 2026
educationjavaspringapi

Works with

  • api

Security analysis

A100/100

Scanned November 11, 2026

npx -y skills add ECNU-ICALK/AutoSkill --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/ecnu-icalk-java-498e274a/badge)](https://www.skillsdirectory.com/skills/ecnu-icalk-java-498e274a)

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.

View all in education →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.