要素 | 説明 |
---|---|
モジュール | アプリケーションの構造を整理するためのメタデータ |
コントローラ | HTTPリクエストを処理するコンポーネント |
サービス | ビジネスロジックを提供するコンポーネント |
インポート | 外部のモジュールを読み込む |
シングルトン | モジュール内のコンポーネントをアプリケーション全体で共有する |
- アプリケーションの構造を整理するためのメタデータ
- アプリケーションの機能を分割して整理する
- コードの重複を防ぐ
- メンテナンス性を向上させる
- コントローラ、サービス、インポートなどの要素で定義できる
- デフォルトではシングルトン
- モジュール内のコンポーネントは、アプリケーション全体で共有される
- モジュール間でコンポーネントを共有したい場合、とくに意識する必要がない
- @Moduleデコレータを使って作成する
- モジュールの名前、依存関係のリスト、およびモジュールに含まれるコンポーネントのリストなどのパラメータが指定できる
- アプリケーションのエンドポイント
- アプリケーションのメインモジュールであり、すべてのモジュールをインポートする必要がある
- モジュール内で有効化するサービスを定義する
- モジュール内で有効化するコントローラーを定義する
- 読み込む外部のモジュールを定義する
- モジュールとして公開するサービスを定義する
- serviceの公開時に
@Injectable()
を使う
- Injectableのスコープが決められる
スコープ | 説明 |
---|---|
DEFAULT | アプリケーション全体でシングルトンで管理される |
REQUEST | リクエストのたびに再生成され、破棄される |
TRANSIENT | ユーザごとに生成され、同じユーザに同じオブジェクトが維持される |