読書会(Java EE 7徹底入門)第4回議事録

[ 戻る ]


=================================================
Java読書会BOF 「Java EE 7徹底入門」を読む会 第4回
=================================================

.. csv-table:: 開催概要

"日時", "2016年4月16日 10:00 - 17:00"
"場所", "川崎市教育文化会館 第3会議室"
"出席者(敬称略)", "石黒、井上、今井、岩室、遠藤、小棚木、川内、高橋(徹)、高橋(智)、中井、平山、松井、八ツ橋、山田、吉本(書記)"

議事
====

5.5 CDI応用編
-------------

5.5.1 イベント処理
------------------

* 図5.7のCDIコンテナの矢印が両方とも「検知」。

  * オブザーバへの矢印が「通知」では。

* インターフェースの@Overrideは何に使うのか?

  * コンパイルでチェック可能になる。

* オブザーバクラスのハンドラメソッドの戻り値はvoidじゃないとダメなのか?

  * 条件には記述はないが、ハンドラである以上、値を返す必要はない。

  * CDIビーンの引数の型で、オブザーバのメソッドを判別する。

* イベントクラスのサブクラスを多く作ったらどうなるのか?

  * 正しいオブザーバが呼び出すのか?

  * 型しか見てなさそう。

* ここで言うオブザーバは、Java標準のものなのか?

  * CDI内だけのものではないか。

* Java EE8では非同期に対応すると聞いたことがあるが、JMSを使わないでよくなるのか?

  * そこはどうなるか分からない。

  * 同期が前提かもしれない。

5.5.2 ステレオタイプの利用
--------------------------

* ステレオタイプは、俺俺アノテーションがエイリアスになるということか?

* P221の本文中のKnowledgeFacadeBeanの間にスペースが入っている。

* 何でもかんでもアノテーションでやろうとして、可読性を損なっている。

  * プロジェクトで正しくルールを決めないと、人によってアノテーションの使い方がバラバラになる。

  * いずれは「おまじない」になってしまう。

  * かつてXMLで記述していたものがアノテーションに替わっただけで、アノテーションが乱立してしまう。

5.5.3 プロデューサ/ディスポーザの利用
--------------------------------------

* JPAのエンティティマネージャは、いろいろなスレッドから呼び出されても問題ないのか?

  * セッションスコープかトランザクションスコープがいいと思う。

  * アプリケーションスコープは広すぎる?

  * 自分でちゃんと管理するしかない。

  * こういうものはコンテナに任せると幸せになれる。

* サンプルソースでResoueceBundleが使われているのが気になる。

  * プロパティを読むために使っている?

  * こういう使い方は「あり」なのか?

  * 国際化の時だけ?

  * Java EE内で、プロパティを読む標準的な使い方なのかもしれない。

5.5.4 インターセプタとデコレータ
--------------------------------

* デコレータとMailBeanの紐付けがどこにも記述されていない。

  * CDI経由でnewすると、デコレータが問答無用で追加される?

  * bean.xmlにも記述はない。宣言だけ。

  * インターセプタも同じ?

5.6 まとめ
----------

6 ビジネスロジック層の開発
--------------------------

6.1 Enterprise Java Beans
-------------------------

6.1.1 EJBとは
-------------

6.1.2 EJBの利点
---------------

6.1.3 EJBの種類
---------------

6.2 セッションビーン
--------------------

6.2.1 セッションビーンとは
--------------------------

6.2.2 セッションビーンの種類
----------------------------

6.2.3 ステートレスセッションビーン
----------------------------------

6.2.4 ステートフルセッションビーン
----------------------------------

* ステートフルセッションビーンとクライアントの関係性は?

  * クライアント側でEJBの参照を持っている程度の関係。

* EJBは別にWebからの使用に特化したモデルではない。

* 画面遷移の状態を持つかのような記述はちょっと違う。

  * Webのタイムアウトよりタイムアウト時間を長くすれば、状態は消えないはず。

* ステートレスよりステートフルを使った方がいい場合が、よく分からない。

  * トランザクションをコンテナに任せられる分、ステートレスの方が安全。

  * メソッドの枠を超えて、2フェイズコミットのような複雑なトランザクションを管理しようとしたら、ステートフルの方がいいかも。

6.2.5 シングルトンセッションビーン
----------------------------------

6.2.6 非同期処理
----------------

6.2.7 トランザクション
----------------------

6.3 メッセージドリブンビーン
----------------------------

6.3.1 メッセージドリブンビーンとは
----------------------------------

6.3.2 実装例
------------

6.4 タイマー
------------

6.4.1 タイマーとは
------------------

6.4.2 タイマーサービスのサンプル
--------------------------------

6.4.3 @Scheduleの実装サンプル
-----------------------------

6.5 EJBの設計
-------------

6.5.1 EJBメソッドの呼び出しに関する設計
---------------------------------------

6.5.2 ローカル呼び出しとリモート呼び出し
----------------------------------------

6.5.3 同期/非同期
------------------

6.5.4 負荷量
------------

6.5.5 データベースアクセス
--------------------------

* 2番と3番の方法は、データソースを使わずに自分で直接行うということか?

  * その通り。

  * でも普通はこんなことはしない。

6.6 EJBのテスト
---------------

6.6.1 EJBのテストの必要性と難しさ
---------------------------------

6.6.2 EJBテストの準備
---------------------

6.7 まとめ
----------

7 データアクセス層の開発
------------------------

7.1 JPAの基礎知識
-----------------

7.1.1 JPAの構成要素
-------------------

7.1.2 エンティティクラスとエンティティオブジェクト
--------------------------------------------------

7.1.3 エンティティマネージャ
----------------------------

7.1.4 クエリ
------------

* JPQLよりCriteriaAPIの方がよさげ?

  * 複雑なWHERE句の制御では、CriteriaAPIの方がいいかも。

  * 速度的には?

  * 結局、SQLに変換するのはどちらも変わらないので、関係なし。

  * Javaが、データベース処理に根本的に向かないのが問題。

7.1.5 永続化ユニット
--------------------

7.1.6 JPAのメリット
-------------------

7.2 エンティティの基本
----------------------

7.2.1 エンティティクラスの実装
------------------------------

7.2.2 ID
--------

7.2.3 リレーション
------------------

.. note:: 次回は、P.292「7.3 エンティティマネージャの基本」から。


[ 戻る ]