目的是通过注解将特定类的信息(如接口编号)与类关联,之后可通过接口编号获取对应bean来执行对应逻辑。
1.新建注解类:
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Service
public @interface ServiceCode {
String code() default "";
String className() default "";
}
包含接口编号和beanName信息。
2.新建接口类:
@ServiceCode(code = "100010", className = "echoService")
@Service("echoService")
public class EchoService {
}
3.实现接口ApplicationListener来监听spring容器初始化完成后执行:
@Component
@Order(1)
public class ServiceInitListener implements ApplicationListener<ContextRefreshedEvent> {
private static final Logger LOGGER = LoggerFactory.getLogger(ServiceInitListener.class);
@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
ApplicationConte