流程:
自定义实现:
实现ApplicationListener<Event类型>
public class RestTemplateReadyListener implements ApplicationListener<ApplicationReadyEvent> {
private static RedisTemplateHolder redisTemplateHolder;
@Override
public void onApplicationEvent(ApplicationReadyEvent event) {
ConfigurableApplicationContext applicationContext = event.getApplicationContext();
RedisTemplate bean = (RedisTemplate) applicationContext.getBean("redisTemplate");
redisTemplateHolder = new RedisTemplateHolder(bean);
}
public static RedisTemplateHolder getRedisTemplateHolder() {
return redisTemplateHolder;
}
public class RedisTemplateHolder {
private final RedisTemplate redisTemplate;
public RedisTemplateHolder(RedisTemplate bean) {
redisTemplate = bean;
}
public RedisTemplate getRedisTemplate() {
return redisTemplate;
}
}
}
配置:
SPI注入
META-INF/spring.factories
org.springframework.context.ApplicationListener=\ com.example.user.listener.RestTemplateReadyListener