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
相关产品推荐
相关产品推荐

