型変換
型変換は、ある型の値を別の型に変えます。主に、設定ファイルのテキストを Bean が必要とする型に変換します。
使う理由
設定はテキストです。server.port=8080、timeout=10s、max-upload=10MB。一方 Bean は int、Duration、DataSize、enum、リストを必要とします。変換サービスは @Value、Environment.getPropertyAs<T>、@ConfigurationProperties のバインドでこの変換を行うため、自分で呼ぶことはほとんどありません。
変換を直接扱うのは 2 つの場合です。独自の型をフレームワークに教えるとき(conversionService Bean)と、自分のコードで値を変換するときです。
例
# lib/resources/application.properties
shop.timeout=30s
shop.max-upload=10MB
shop.ports=8080,8081
import 'package:spring_core_dart/spring_core_dart.dart';
@Service()
class Uploads {
Uploads(
@Value(r'${shop.timeout}') this.timeout, // Duration(seconds: 30)
@Value(r'${shop.max-upload}') this.maxUpload, // 10485760 バイト
@Value(r'${shop.ports}') this.ports, // [8080, 8081]
);
final Duration timeout;
final DataSize maxUpload;
final List<int> ports;
}
ページ一覧
- ConversionService: 変換サービス、デフォルトのコンバーター、独自コンバーターの追加方法。
- DataSize:
10MBのようなサイズ。単位は 1024 の累乗。 - Durations:
10sとPT10S、DurationStyleとChronoUnit。