You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot中无法读取自定义注解的问题求助

Spring Boot中无法读取自定义注解的问题求助

各位大佬好,我最近在Spring Boot项目里遇到了个头疼的问题——想通过自定义注解来整理我的服务类,生成对应的Map,但总是读不到注解的内容,折腾半天没搞定,特意来求助大家!

先给大家看下我的实现代码:

首先是我定义的几个自定义注解,都设置了RUNTIME保留策略,目标为类级别:

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE) 
public @interface DataService {
}

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE) 
public @interface FooData {
    String value() default "";
}

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE) 
public @interface BarData {
    String value() default "";
}

然后是我的服务层代码,两个服务类都实现了IService接口,同时加上了@DataService注解、各自对应的专属注解,还有Spring的@Service注解:

public interface IService {
    String getData();
}

@DataService
@FooData("Foo Service")
@Service
public class FooService implements IService {
    @Override
    public String getData() {
        return "Data from FooService";
    }
}

@DataService
@BarData("Bar Service")
@Service
public class BarService implements IService {
    @Override
    public String getData() {
        return "Data from BarService";
    }
}

我的需求是在应用启动时,扫描所有带有@DataService注解的Bean,然后根据它们身上的@FooData或@BarData注解的value值作为key,对应的服务实例作为value,生成一个Map。但现在不管我怎么尝试,都没办法正确读取到这些自定义注解的内容,要么获取到的是null,要么就是根本扫不到标记了注解的类。

有没有大佬能帮我诊断下问题出在哪?或者有没有正确的姿势在Spring Boot中实现这个需求呀?

备注:内容来源于stack exchange,提问作者implosivesilence

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 13:27:59