可能是因为您正在上下文初始化阶段的中间注册您的bean。如果您的目标Bean进行了初始化并
ExecutorService在
ConfigClass
@PostConstruct调用之前自动关联,则根本就没有可用的Bean。
您可以尝试强制初始化顺序:
@Component@DependsOn("configClass")public class MyComponent @Autowired private ExecutorService executorService;但是这将是清洁使用注册一个bean定义
BeanFactoryPostProcessor有
BeanDefinitionBuilder:
@Componentpublic class MyBeanRegistration implements BeanFactoryPostProcessor { @Override public void postProcessBeanFactory(ConfigurableListableBeanFactory bf) { BeanDefinitionRegistry reg = (BeanDefinitionRegistry) bf; reg.registerBeanDefinition("exService", BeanDefinitionBuilder .rootBeanDefinition(ExecutorService.class) .setFactoryMethod("newWorkStealingPool") .getBeanDefinition()); }}


