アスペクト指向
今日のまとめ
AOPとOOP
アスペクト指向(AOP)は、オブジェクト指向(OOP)の本質でない部分を抜き出したものです。簡単に言えば、AOPはOOPではカバーできない箇所を補います。複数のオブジェクトで同じ操作が散在してしまうことを「横断的関心事」といいます。AOPでは、横断的関心事をアスペクトというモジュールに分離、管理をすることで、OOPよりも処理の保守性と再利用性のレベルを高めることができます。
AOP・・・Aspect Oriented Programming
Aspect・・・横断的関心事
モジュール・・・一連の機能がひとまとまりになる複数の機能
ロギング
ロギングとは、起こった出来事についての情報などを一定の形式で時系列に記録・蓄積すること。そのように記録されたデータのことを「ログ」(log)という。
Pointcut
ジョインポイントの集合のこと。条件にあうジョインポイントだけを抜き出すことも可能。
Interceptor
メソッドの呼び出しタイミングで、振る舞いを挿入すること。Advice
ジョインポイントに埋め込まれるアスペクトコードのこと。3つの種類がある。- Around Advice
ジョインポイントの前後で実行される。 - Before Advice
ジョインポイントの前で実行される。 - After Advice
ジョインポイントの後に実行される。2つの種類がある。
After returning Advice
ジョインポイントでの処理が正常に終了した後に実行される。
Throws Advice
ジョインポイントでの処理で例外が発生した場合に実行される。
- Around Advice
JoinPoints
アスペクトコードが挿入できる位置を表したもの。例えば、メソッド呼び出しの前後などは、ジョインポイントになる。
Thymeleaf
Javaのテンプレートエンジンライブラリ。テンプレートエンジンというのはデータとテンプレートを合体させ、文字列を作る仕組みのことです。XML/XHTML/HTML5で書かれたテンプレートを変換して、アプリケーションのデータやテキストを表示することができます。
<html xmlns:th="http://www.thymeleaf.org" lang="ja">
<p th:text="${hoge}">
MVC
Model View Controller
フロントコントローラー
フルスタック
Gradle
Groovy製のビルドツール。
ビルド・・・ソースからアプリケーションを構築するまでの一連の流れ。
ビルドツール・・・ビルドに関わる各種処理を実行。