今年になって、Java EEの学習環境がガラッと変わりました。 2016年も半分以上過ぎてしましましたが(笑)、今からJava EE 7を勉強するにはどうすべきか、改めて書きたいと思います。 1. まずは作りながら学ぶ 以下3冊のいずれか1つで、Webアプリを作りながらJava EEの概要を理解しましょう。本屋さんで軽く立ち読みして、ご自分に合いそうな本を1つ選んでください。 www.shuwasystem.co.jp www.shuwasystem.co.jp www.shoeisha.co.jp これらの本は、いずれもWebアプリを作りながらJava EEの基本を学ぶ、チュートリアルのような形式です。 「わかりやすいJava EE」と「パーフェクトマスター」は、サーブレット・JSPの学習が終わったJava初心者の方向けです。ただし、RESTful Webサービスを作る技術「JAX-RS
https://www.amazon.co.jp/パーフェクト-Java-EE-井上-誠一郎/dp/4774183164www.amazon.co.jpgihyo.jp 著者の1人である@kikutaro_さんから献本いただきました。ありがとうございます! これまでのJava EE書籍の課題 まずは、Java EEの最新バージョンである「Java EE 7」対応の日本語書籍が少ないことでした。 なので、下記のEE 5本やEE 6本で勉強した後は、ブログ情報を検索したり、海外の英語情報に頼るしかありませんでした。 https://www.amazon.co.jp/マスタリングJavaEE5-第2版-DVD付-Programmer’s-SELECTION/dp/4798120545 https://www.amazon.co.jp/Beginning-6%7EGlassFish-3で始めるエン
かなり久々のJPAネタ。 こんなエンティティクラスがあって、 @Entity public class Employee implements Serializable { @Id @Column(name = "emp_id") private Integer empId; @Temporal(TemporalType.DATE) @Column(name = "joined_date") private java.util.Date joinedDate; joinedDateというフィールドはjava.util.Date型、そして@Temporal(TemporalType.DATE)が付いています。 これをEclipseLinkで実行すると、joinedDateにはjava.util.Date型のインスタンスが代入される。 一方、Hibernateで実行すると、joinedDate
やりたいこと こんなCDI管理ビーンがあって、 @Named @SessionScoped public class SessionDto implements Serializable { private String id; public String getId() { return id; } } Thymeleafのビューからこんな感じで参照したいです。 <p th:text="${sessionDto.id}">...</p> 本当は上記みたいにやりたかったのですが、現時点では、下記のような感じで参照することができました。 <p th:text="${#cdi.bean('sessionDto').id}">...</p> 以下、やり方を解説します。 名前からCDI管理ビーンを取得するクラスの作成 package com.example.rest.thymeleaf; impo
やりたいこと Thymeleafのビューで、java.time.LocalDateなどJava SE 8で入った日時クラス(Date and Time API)を使いたい。 Date and Time APIについてはこちらをどうぞ。 Java日付時刻APIメモ(Hishidama's Java8 Date and Time API Memo) (蓮沼さんの資料は何故か見つからなかった・・・) Thymeleafの拡張機能を追加 Thymeleafには、Date and Time APIを利用するための拡張機能があります。 https://github.com/thymeleaf/thymeleaf-extras-java8time 本体に入っていないのは恐らく、Thymeleaf本体はJava SE 6でコンパイルされているからだと思われます。 thymeleaf/CONTRIBUTIN
この記事について JJUG CCC 2016 Spring「ネクストStruts/Seasr2としてのJava EEアクションベースMVC入門」の補足記事です。 Jersey MVCで、JSPの代わりのビューとしてThymeleafを使う方法を解説します。 Jersey MVCの基本については、下記の記事を参照してください。 Java EE 7でもアクションベースMVC! -MVC 1.0への移行を睨んだJersey MVCの活用- #javaee - Java EE 事始め! 環境 Payara Web ML 4.1.1.162 Thymeleaf 2.1.4.RELEASE ソースコード jjug-action-based-mvc/jjug-jersey-mvc at master · MasatoshiTada/jjug-action-based-mvc · GitHub Templ
この記事について このブログは、Java EE Advent Calendar 2015 - Qiitaの25日目(最終日)です。 昨日はhondaYoshitakaさんの「Java - JAX-RSによるExcel/CSV/PDFファイルダウンロード - Qiita」でした。 MVC 1.0はJava EE 8から アクションベースMVCと言えば、Java EE 8で導入される「MVC 1.0」ですね。 MVC 1.0の詳細については、今年のGlassFish勉強会の資料をご覧ください。 Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新 EE 8は2017年上半期リリース予定ですので、現在のEE 7ではMVC 1.0は使えません。 MVC 1.0の参照実装「Ozark」は既にGitHub・Maven上で公開されていますが、まだ策定途中のため仕様が
JJUG CCC 2015 Fallが近づいてきました。 今回、僕は2時間のJava EEハンズオンを担当することになりました。 ■脱Struts&独自フレームワーク!今からでも遅くないJava EE Web開発入門ハンズオン! http://www.java-users.jp/?page_id=2064#M-1 このハンズオンは、StrutsなどのWebフレームワークは経験があるけど、Java EEは初めてという方を対象にしていますので、「Java EEってそもそも何?」という方も歓迎です! 基礎からの講義・解説をしながらハンズオンを進めますし、演習をサポートするチューターも何人か参加しますので、Java EE初心者でも安心のセッションです! 内容は、Java EEのWebフレームワークである「JSF」「JAX-RS」「Jersey MVC」を、実際にご自分のPCでプログラムを作りながら
表題の件を調べていて、ほぼJava EEのJTAと同じかと思いきや、NESTEDというJTAには無いものがあったのでまとめました。 @Transactionalとは? メソッドに付加すると、メソッドの開始がトランザクションの開始、メソッドの終了がトランザクションの終了になります。 メソッド内で非チェック例外(RuntimeException及びそのサブクラス)が発生した場合はロールバックされます。 チェック例外の場合はロールバックされません。 具体的なコードで説明します。 実際にDBにアクセスするTxTestRepositoryクラス(以下「リポジトリ」)があり、それを呼び出しているTxTestService1(以下「サービス1」)とTxTestService2(以下「サービス2」)があります。 そして、サービス1はサービス2も呼び出しているとします。 @Repository public
皆さんはJavaのIDE、何をお使いでしょうか。 2015年現在では、おそらく以下の3つのいずれかだと思います。 Eclipse NetBeans IntelliJ IDEA (ちなみに、僕自身が使った経験がほとんどないので、VimやEmacsなどのエディタは今回のスコープから除外しますm( )m) 僕自身は、社会人になってからJavaを学び始め、新人研修はサクラエディタで受講し、それ以降はしばらく数年はEclipseのみを使っていました。 NetBeans歴は2年くらい、IntelliJ IDEA歴は1年くらいで、どのIDEも普段使いにはほぼ問題ない、というくらいのレベルです。 逆に言えば、どれもまだまだ使いこなせてないんじゃないかとも自分では思っています(^^; その程度のレベルの僕ですが、現時点でどのような見解を持っているのか、それぞれのIDEの特徴を比較しつつ説明したいと思います。
普段から僕は、Java EEやるときはGlassFish/Payaraを使っているのですが、1つだけ懸念事項がありました。それが表題の現象です。それがPayara 4.1.1.154(おそらくGlassFish 4.1.1)で治っていた、というお話です。 どんな現象? Java EEでWeb作るときは、永続化層(JPA)・ビジネスロジック層(CDI/EJB)・プレゼンテーション層(JSF/JAX-RS)というような階層構造にすることが多いと思います。 永続化層 @Dependent public class EmployeeDao { @PersistenceContext(unitName = "empPU") private EntityManager em; @Transactional(TxType.REQUIRED) public Employee findById(Intege
Doma 2とは?基本的な使い方は? Doma 2は、SQLを外部ファイルに書くことができるORマッパーです。ネイティブSQLが書けること、依存ライブラリが無い事、国産 OSSで日本語ドキュメントが充実している事などが魅力です。 下記の記事もご参考になさってください。2014年のJavaアドベントカレンダー向けに書いたものです。 美しき青きDoma!~SQLとIDEが奏でる美しきORマッピング~ - Java EE 事始め! Domaでは、プログラマが作るのはHogeDaoインターフェイスだけで、その実装クラスHogeDaoImplはGradleでビルド時にAnnotation Processorで自動生成されます。 CDI/EJB使ってHogeDao型のフィールドにHogeDaoImplのインスタンスをインジェクションしたり、JTAでトランザクション管理するには、実装クラス側(HogeD
公式資料 MVC 1.0のアーリードラフト第2版がリリースされました! JSR 371はこちら JSR-000371 Model-View-Controller Early Draft Review 2 Ozark(MVC 1.0の参照実装)のソースコードはこちら spericas/ozark · GitHub 僕の解説資料 スライド資料 それに伴って、先月のGlassFish勉強会で発表した資料も更新しました。 Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新 from Masatoshi Tada www.slideshare.net サンプルコード GitHubのサンプルコードも修正しましたので、git cloneしてお使いください。 GlassFish勉強会の時は、mvc-specとozark)をgit cloneしてローカルでMavenで
以前、MVC 1.0の記事で、Java EEのトランザクション管理について書きました。 MVC 1.0ではじめる簡単Java EE開発入門! - Java EE 事始め! @RequestScoped public class ManufacturerService { @PersistenceContext(unitName = "ozarkPU") private EntityManager manager; @Transactional(Transactional.TxType.REQUIRED) // JTAトランザクション管理 public Manufacturer findById(Integer id) { Manufacturer manufacturer = manager.find(Manufacturer.class, id); return manufacturer
この記事について タイトルの通りですが、JSFを使う上で確認しておきたい情報のリンクをまとめました。 まずはコレ! 菊田さんのJava Day Tokyo 2015の発表資料です。 JSFの全体像や、JSFで何ができるかなどが綺麗にまとまっています。 PDF(直リンク) http://www.oracle.co.jp/jdt2015/pdf/3-3.pdf 動画 https://www.youtube.com/watch?v=yW_LAa9FXAo JSFアプリケーションライフサイクル 6つのフェーズおよびバリデーションの実行順序が重要です。 ブログ記事ですと、寺田さんの下記の記事を読むと良いでしょう。 JSF 2.0 の詳細について | 寺田 佳央 - Yoshio Terada 書籍では、「マスタリングJava EE 5」の第23章・第25章・第28章を参照してください。 マスタリング
2015-09-04 JPAを使うなら読んでおきたいリンクまとめ Java EE 7 JPA 日本語書籍 JPAは比較的、日本語書籍の情報が充実しているため、これらを読んでいただくのが早いです。最初にJava EE 6本(金魚本)を読んで、その後に詳細な内容をJava EE 5本で理解する、という順番が良いでしょう。EE 5からEE 6になった際は大幅な変更点があったので、注意しながら読んでください。EE 6からEE 7へのアップデート時は、互換性が無いようなドラスティックな変更点はありません。 Amazon.co.jp: Beginning Java EE 6 GlassFish 3で始めるエンタープライズJava (Programmer’s SELECTION): Antonio Goncalves, 日本オラクル株式会社, 株式会社プロシステムエルオーシー: 本www.amazon.
日本語書籍 「わかりやすいJava EE」「Java EE 7徹底入門」です。 金魚本およびEE 5本には記載がありません。 Amazon CAPTCHA Amazon CAPTCHA まず概要を掴む CDIに関しては、まずは下記の上妻さんの記事をご確認ください。バージョンが上がるごとに注意点をまとめていらっしゃいます。順番に読んでいただければOKです。 CDI 1.0 (Java EE 6) CDIをはじめよう - 見習いプログラミング日記 CDI 1.1 (Java EE 7) Java EE環境におけるCDIのデフォルト化 - 見習いプログラミング日記 CDI 1.2 (Java EE 7) CDI1.2によるbean-discovery-modeの見直し - 見習いプログラミング日記 CDI 1.0から2.0 + αまで (Java EE 6, 7, 8) CDI2.0アップデート
2015-07-11 「はまる!JPA」のN+1問題をEntity Graphで解決する Java EE 7 JPA JPAにおけるN+1問題とは? 元ネタは、こちらの@makingさんの資料(2013年のGlassFish勉強会にて)です。 はまる!!JPA #glassfish_jp #javaee from Toshiaki Maki www.slideshare.net N+1問題とは、エンティティに1対多のリレーションがあるときに、多数のSQLが発行されてパフォーマンスが落ちるという問題です。 上記の槙さんの資料では、JPQLのJOIN FETCH文+setHint()メソッドを利用してこの問題を解決し、1回のSQLで全てのデータを取得できるようにしています。 今回の記事では、JPA 2.1(Java EE 7)の新機能であるEntity Graphを使って、N+1問題の解
jBatchとは? Java EE 7から新たに加わった、バッチ処理用フレームワークの仕様です。 EE 6までは、Java EE標準仕様にバッチは入っていなかったのですが、EE 7から加わりました。 正式名称は「Batch Application for the Java Platform」で、公式?の略称が「jBatch」です。 Spring Frameworkには、以前から「Spring Batch」というものがあったのですが、これを基にjBatchの仕様が策定されたようです。 また、Spring Batch自身も、jBatch準拠になっているようです。 jBatchの実装 jBatchに限らず、Java EEは仕様のみ(ほとんどインターフェイス・アノテーション・例外・enum)なので、jBatchを使うためには、それに対応する「実装」が必要です。 僕が調べた限りでは、今のところ実装は
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く