111

2022-09-11 23:14:12 +08:00
 RedBeanIce

111

请删除这个帖子

601 次点击
所在节点    自言自语
4 条回复
yanghanlin
2022-09-11 23:22:37 +08:00
private static RestTemplate REST_TEMPLATE = (RestTemplate) SpringUtil.getBean( ...

这里 SpringUtil.getBean 运行时 ApplicationContext 还未建立起来,自然无法获取到 bean
RedBeanIce
2022-09-11 23:22:57 +08:00
@yanghanlin yes 您是对的。
RedBeanIce
2022-09-11 23:25:23 +08:00
@yanghanlin 但是我不知道有什么办法解决这个问题,这个问题是在 static 的地方,引入 spring 的非 static 对象,,我去尝试一下。,,有一点思路。

感谢您的回复
RedBeanIce
2022-09-11 23:38:28 +08:00
@yanghanlin

这样就行了!!感谢!!!

```java
@Component
public class RestTemplateUtil implements ApplicationListener<ApplicationStartedEvent>, ApplicationContextAware {

private static RestTemplate REST_TEMPLATE;
private ApplicationContext applicationContext;

private RestTemplateUtil() {
}

public void setApplicationContext(ApplicationContext inputApplicationContext) throws BeansException {
this.applicationContext = inputApplicationContext;
}

public void onApplicationEvent(ApplicationStartedEvent event) {
RestTemplate restTemplate = (RestTemplate)this.applicationContext.getBean("xuegao-framework-restTemplate", RestTemplate.class);
setRestTemplate(restTemplate);
log.info("[xue-gao-framework][RestTemplateUtil][onApplicationEvent][设置 restTemplate 完毕]");
}

public static void setRestTemplate(RestTemplate restTemplate) {
if (REST_TEMPLATE == null) {
REST_TEMPLATE = restTemplate;
}
}

```

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/879354

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX