小编Dog*_*027的帖子

RestTemplate 已弃用的 DefaultUriTemplateHandler 的替代品是什么?

在 Spring 5 之前,配置 RestTemplate 以访问单个 REST 主机的常用方法如下:

DefaultUriTemplateHandler uriTemplateHandler = new DefaultUriTemplateHandler();
uriTemplateHandler.setBaseUrl("http://host:port");
restTemplate.setUriTemplateHandler(uriTemplateHandler);
Run Code Online (Sandbox Code Playgroud)

以便在进行 REST 调用时,可以restTemplate.getForObject("/api/foo")代替restTemplate.getForObject("http://host:port/api/foo")(并可能在某处集中配置 REST 根 URL)

在 Spring 5 中,DefaultUriTemplateHandler已弃用,建议替换为DefaultUriBuilderFactory. 然而,虽然RestTemplate仍然有setUriTemplateHandler方法,但它没有接受 an 的 setter UriBuilderFactory,也没有UriBuilderFactory任何类似的东西setBaseUrl

Spring 5 中这种配置模式的正确替代品是什么?

rest spring spring-mvc

4
推荐指数
1
解决办法
2691
查看次数

如何检测何时在Angular中渲染视图元素?

我的设置是带有可单击行的Angular Material数据表。单击某行后,其内容将以内嵌形式显示在进行textarea编辑。我唯一的问题是,我尝试将输入焦点移至所示的textarea。我尝试使用来完成此操作@ViewChild,但是稍后会在点击处理程序已经执行后填充它。

一些代码,以说明:

app.component.ts:

import {Component, ElementRef, ViewChild} from '@angular/core';

@Component({ selector: 'app-root', templateUrl: './app.component.html' })
export class AppComponent {
  columns = ['id', 'def'];
  selected: string;
  ruleDef: string;
  @ViewChild('edit') editArea: ElementRef;
  selectRule(rule: Rule) {
    this.selected = rule.id;
    if (this.editArea) this.editArea.nativeElement.focus();
  }
}

interface Rule {id: string, def: string}
Run Code Online (Sandbox Code Playgroud)

app.component.html:

<mat-table #table [dataSource]="dataSource">
  <ng-container matColumnDef="id">
    <mat-header-cell *matHeaderCellDef>Rule ID</mat-header-cell>
    <mat-cell *matCellDef="let element">{{element.id}}</mat-cell>
  </ng-container>
  <ng-container matColumnDef="def">
    <mat-header-cell *matHeaderCellDef>Rule Definition</mat-header-cell>
    <mat-cell *matCellDef="let element">
      <mat-form-field *ngIf="element.id === selected">
        <code><textarea …
Run Code Online (Sandbox Code Playgroud)

javascript typescript angular-material angular

2
推荐指数
1
解决办法
1315
查看次数