spring_core_dart

Spring for Dart の中核となるパッケージです。クラスをアノテーションで Bean として宣言すると、コンテナがそれらを生成し、互いに結び付け、設定します。結び付けのコードはビルド時に spring_core_dart_generator が書き出すため、実行時にリフレクションで検索することはありません。

dependencies:
  spring_core_dart: ^0.7.1

dev_dependencies:
  build_runner: ^2.17.0
  spring_core_dart_generator: ^0.7.1
import 'package:spring_core_dart/spring_core_dart.dart';

import 'main.spring.dart';

@Service()
class Greeter {
  Greeter(@Value(r'${greeting:Hello}') this.greeting);

  final String greeting;
}

@ComponentScan()
final BeanModule appBeans = $appBeans;

const log = SpringLog('app');

void main() {
  final context = ApplicationContext.run([appBeans]);
  log.info(context.getBean<Greeter>().greeting);
  context.close();
}

main.spring.dart を書き出すには、最初に一度、そしてアノテーションを変更するたびに dart run build_runner build を実行します。

内容

ライブラリ

package:spring_core_dart/spring_core_dart.dart はすべてをエクスポートします。一部だけが必要なライブラリは、 core.dart、beans.dart、context.dart、expression.dart、json.dart、validation.dart、aop.dart を個別にインポートできます。Jakarta の名前 (@Inject、@Named) は jakarta.dart にあります。