ホームページ  >  記事  >  Java  >  [転送] MyBatisインターフェースの簡単な実装原理

[転送] MyBatisインターフェースの簡単な実装原理

PHP中文网
PHP中文网オリジナル
2017-07-09 18:12:391303ブラウズ

MyBatisインターフェースの簡単な実装原理

MyBatis3 を使ったことがある人は、なぜ MyBatis の Mapper インターフェースには実装クラスがないのに、直接使用できるのかと疑問に思うかもしれません。

それは、MyBatis が Java ダイナミック プロキシによって実装されたインターフェイスを使用しているためです。

ここでは原理を説明するための簡単な例を示しますが、これは MyBatis に完全に固有のものではありません。このアイデアは他の場所にも適用できます。

インターフェースを定義する

リーリー

動的プロキシインターフェースを実装する

リーリー

ここでは、invoke方法简单说说MyBatis的实现原理,在该方法中,我们通过Method能够获取接口和方法名,接口的全名相当于MyBatis XML中的namespace,方法名相当于具体一个方法中的id。也就是说通过动态代理后,可以通过SqlSession来通过namespace.idメソッドに対応するメソッドを呼び出します。インターフェイスを使用するとより便利ですが、間接的な方法になります。

動的プロキシファクトリークラス

リーリー

このファクトリ クラスは、任意のインターフェイスの動的なプロキシ クラスを生成できます。

テスト

リーリー

まとめ

一般的に、動的エージェントに関して言えば、私たちの通常の使用法は、トランザクション、ログ、またはメソッドの実行効率の記録やその他のアプリケーションを扱うことです。これらはすべて、実装前または実装後のクラス メソッドの特別な処理です。

この記事を通じて、実際に別のアプリケーションの方向性がわかります。つまり、クラスを実装する必要がなく、MyBatis はこのメソッドを使用してメソッドの呼び出しを容易にします。このアイデアを他のアプリケーションで使用して、より良いデザインを作成できるかもしれません。

原文:

以上が[転送] MyBatisインターフェースの簡単な実装原理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。