タグ

2016年10月6日のブックマーク (2件)

  • Spring AOPでテーブルの作成者・作成日時・更新者・更新日時を設定する - Qiita

    AOPの使用例として、ログ、キャッシュ、トランザクション管理、処理時間計測、例外対応などが有名だと思います。 今回、業務システムで使えそうなものを作ってみたいと思います。 業務システムで使用するテーブルには、作成者、作成日時、更新者、更新日時を保持することが多いと思います。 これらの項目をアプリケーション側で設定してもいいのですが、設定漏れがあったり、質的でない処理をいろいろなところに書かなければいけなかったりで、結構面倒です。 そこで、AOPを使って、これらの項目を設定してみます。 図で示すと、(ビジネスロジックを実装した@Serviceクラスから)Mapperのcreate*メソッドとupdate*メソッドへの呼び出しをJoin Pointとし、Mapperの引数のモデルオブジェクトに対して、作成者、作成日時、更新者、更新日時を設定してみるということです。 作成者と更新者はSprin

    Spring AOPでテーブルの作成者・作成日時・更新者・更新日時を設定する - Qiita
    su_zu_ki_1010
    su_zu_ki_1010 2016/10/06
    AOP凄いなぁと思う反面、知らない人にとってはどこで何をやってるのかわかりにくいだろうなぁという思いも…。ドキュメントが無いとコードを追いにくそう。
  • Java 8 でインスタンスを遅延して構築するいくつかの方法 - Humanity

    シングルトンを構築するには、enum を使うのがスレッドセーフだしお手軽です。 なぜなら enum の初期化は1つのスレッドから1度だけ行われると規定されているからです。 また、コンストラクタを private にしてもコンパイルエラーにはならず、何の問題もなく初期化できます。 @ApplicationScoped class EntityManagerProducer { @Produces public EntityManager getEntityManager() { return EntityManagerSingleton.INSTANCE.get(); } private static enum EntityManagerSingleton { INSTANCE; private EntityManager em; private EntityManagerSingleton

    Java 8 でインスタンスを遅延して構築するいくつかの方法 - Humanity
    su_zu_ki_1010
    su_zu_ki_1010 2016/10/06
    ほー。なるほど。