CallbackAbilityContainer.java
package io.featureprobe.api.hook;
import io.featureprobe.api.base.hook.CallbackType;
import io.featureprobe.api.base.hook.ICallback;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.util.HashMap;
import java.util.Map;
@Slf4j
@Component
@AllArgsConstructor
public class CallbackAbilityContainer {
ApplicationContext applicationContext;
private static final Map<String, ICallback> hooks = new HashMap<>();
@PostConstruct
public void init() {
hooks.putAll(applicationContext.getBeansOfType(ICallback.class));
log.info("Initialized {} Hook callback ability。", hooks.size());
}
public static ICallback get(CallbackType callbackType) {
return hooks.get(callbackType.name());
}
}