型変換

型変換は、ある型の値を別の型に変えます。主に、設定ファイルのテキストを 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;
}

ページ一覧

関連項目