为了账号安全,请及时绑定邮箱和手机立即绑定

为什么在这个例子中使用了一个 Bean - 它看起来像是毫无意义的间接寻址?

为什么在这个例子中使用了一个 Bean - 它看起来像是毫无意义的间接寻址?

慕姐8265434 2023-04-26 14:05:04
在这个如何设置异步服务的示例中,出于某种原因,RestTemplate 以非常迂回的方式设置。为什么异步例程本身不能声明一个新的 RestTemplate?@Servicepublic class AsyncService {    private static Logger log = LoggerFactory.getLogger(AsyncService.class);    @Autowired    private RestTemplate restTemplate;    @Bean    public RestTemplate restTemplate() {        return new RestTemplate();    }    @Async("asyncExecutor")    public CompletableFuture<EmployeeNames> getEmployeeName() throws InterruptedException    {        log.info("getEmployeeName starts");        EmployeeNames employeeNameData = restTemplate.getForObject("http://localhost:8080/name", EmployeeNames.class);        log.info("employeeNameData, {}", employeeNameData);        Thread.sleep(1000L);    //Intentional delay        log.info("employeeNameData completed");        return CompletableFuture.completedFuture(employeeNameData);    } //...
查看完整描述

1 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

为什么异步例程本身不能声明一个新的 RestTemplate?

显然这里没有价值。如果没有在其他地方重用,
RestTemplate可以简单地用操作符创建。如果我们想在其他地方重用 它,声明它是有意义的。 它确实在另一个需要它的 bean 中提供了单例可注入/可重用。 但通常我们不会像这段代码那样在一个类中这样做,而是在一个更全局的配置类中这样做。 new
@Bean

@Service


查看完整回答
反对 回复 2023-04-26
  • 1 回答
  • 0 关注
  • 93 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信