サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ブラックフライデー
qiita.com/opengl-8080
環境構築 コード CDI とは Contexts and Dependency Injection の略。 Java EE 7 には ver 1.1 が含まれている。 JSR は 346。 DI (依存性の注入)に加えて、管理しているインスタンスのスコープの管理まで行ってくれる。 CDI 誕生の経緯と JBoss Seam の変遷 CDI は、 JBoss が提供していた独自フレームワークである Seam が前身となっている。 Seam は日本語で「継ぎ目」という意味。 Java EE 5 の頃の JSF と EJB をシームレスに連携させることを目的に作られたのが、この Seam というフレームワーク。 この Seam の中で、 DI やコンテキストの管理を担っていたコアの部分が抽出され、 JSR として標準化されたものが CDI 1.0 (JSR299)になる。 参照実装は Weld
Tomcat で Google Guice を使う方法のメモ。 環境 Tomcat 7.0.50 Google Guice 3.0 Java 1.7.0_51 Hello World 依存 jar の追加 guice-3.0.jar と guice-servlet-3.0.jar をクラスパスに追加する。 build.gradle は以下。 dependencies { providedCompile 'org.apache.tomcat:tomcat-servlet-api:7.0.50' compile 'com.google.inject:guice:3.0' compile 'com.google.inject.extensions:guice-servlet:3.0' } <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:
gnab/remark | GitHub Markdown で記述したテキストをスライド形式にして表示してくれるツール。 同種のツールに reveal.js があるが、あちらよりもシンプル。 というか、デフォルトだとスタイルについては基本なにもしない。 スタイルは CSS を使って自力で調整する。 必要なファイルも、特別なフォントを指定しないのであれば、実質 js ファイルのみ。 シンプルなスライドをパパっと作りたい場合は、 Remark がいい気がする。 凝りたい場合は、 CSS 使っていくらでも凝ることができる。 Hello World <!DOCTYPE html> <html> <head> <title>Title</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <style
package sample.javaee.jpa.entity.criteria; import javax.persistence.Entity; import javax.persistence.Id; @Entity public class Kisume { @Id private Long id; @Override public String toString() { return "Kisume{" + "id=" + id + '}'; } } package sample.javaee.jpa.ejb; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persisten
Pluggable Annotation Processing API とは Java 1.6 から追加された、コンパイル時にアノテーションを処理するための仕組み。 Lombok とか JPA の Metamodel とかで利用されている。 つまり、コンパイル時にアノテーションを読み込んでソースコードを自動生成したりできる。 Java 1.5 でアノテーションが追加されたときに、同様にアノテーションをコンパイル時に処理する仕組みとして Annotation Processing Tool (apt) が追加されていたが、これとは別物らしい。 Hello World プロセッサーを実装する import javax.annotation.processing.AbstractProcessor; import javax.annotation.processing.RoundEnvironm
環境構築 JPA の基本的な話 マッピングの話 Criteria API の話 コード JPQL とは Java Persistence Query Language の略。 JPA で使用できるクエリ言語。 SQL に似ているけど、クエリの対象はデータベースではなくエンティティ。 検索では、テーブル名ではなくエンティティ名を指定し、カラム名ではなくプロパティ名を指定する。 また、検索結果はテーブルのレコードではなく、エンティティやそのコレクションが取得される。 決して、「データベース製品間の差異を吸収した標準的な SQL」ではない。 「Java と JavaScript とは似てるようで全然別の言語」みたいな感じ。 エンティティの検索や CRUD が行える。 バージョンが上がるごとに、ちょっとずつできることが増えていっている。 基本 エンティティモデル 実装 package sample
レイヤ化アーキテクチャ(LAYERED ARCHITECTURE) DDD でのレイヤ化アーキテクチャ アプリケーションの中では、ドメインのロジック以外にも様々な処理が行われる。 例えば、画面表示に関する処理・トランザクション制御・データベースアクセス・メール送信などがある。 もし、これら他の関心事の中にドメインロジックが紛れ込んでいると、コードは非常に読みづらくなり保守もしづらくなる。 この問題を回避するため、ドメインは他の感心事から分離しなければならない。 分離の手法は多々あるが、一般的に広く受け入れられている手法として、レイヤ化アーキテクチャがある。 レイヤ化アーキテクチャでは、アプリケーションが持つ関心事をいくつかの層に分離する。 各層に含まれる要素は、同じ層内の要素かもしくは下位の層にのみ依存し、上位の層には依存しないようにする。 上位の層と連携する場合は、コールバックやオブザー
Spring Boot とは Spring プロジェクトが提供する様々なライブラリやフレームワークを、手っ取り早く使えるようにしたフレームワーク。 Dropwizard の Spring 版みたいなの。 ビルドすると単独の jar ファイルができあがる。 Web アプリの場合は、組み込みの Tomcat が起動する(Jetty や Undertow に切り替え可)。 Web アプリでなく、普通の Java プログラムとしても動かせる。 Maven や Gradle などのビルドツールを利用する(Ant でもできなくはない)。 使用したいコンポーネントを依存関係に追加するだけで、結合に必要な設定などが自動で行われる。 環境 Java 1.8.0_45 Gradle 2.3 Spring Boot 1.2.3 Hello World 実装 buildscript { repositories
Java Magazine で取り上げられていて存在は知っていたものの、特にチェックはしてなかった GS Collections。 Java Day Tokyo 2015 や JJUG CCC 2015 で再びその名前を耳にし、気になってチラッと実装を見たところ、面白そうだったので使い方を調べてみた。 【追記】Eclipse Collections 2015 年の 10 月から 12 月にかけて、 GS Collections は Eclipse 財団に移管された。 名前も GS Collections から Eclipse Collections に変更された。 公式サイトはこちら → Eclipse Collections - Features you want with the collections you need. (日本語ページ) GS Collections と、機能的な差
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
環境 OS Windows7 64bit Eclipse Version: Juno Service Release 2 Build id: 20130225-0426 GlassFish 3.1.2.2 発生する問題 CDI のインジェクションがうまく行かなくてアノテーションを色々切り換えたりしていると、突然以下のようなエラーが出続けるようになることがある。 一度このエラーが発生すると、それ以前までは普通に動いていた状態に実装を戻しても同じエラーが発生してしまうようになる。 さらに、 GlassFish を再起動すると、以下のように 69% でプログレスバーが止まり、起動できなくなる。 ※「起動済み」となっているけど、実際に Web ブラウザでアクセスすると 404 ページが表示される。 こうなると、タスクマネージャーから当該の java プロセスを終了させるしかなくなってしまう。 完全
環境構築は こちら。 ソースコードは GitHub にあげています。 https://github.com/opengl8080-javaee-samples/ejb EJB とは Enterprise Java Beans の略。 ビジネスロジックを簡潔に実装できるようにしてくれる仕組み・フレームワーク。 ビジネスロジックを持つクラスは POJO で作成でき、エンタープライズアプリケーションで必要になるトランザクション制御やリソース(JNDI, 他の EJB など)の取得、セキュリティ制御、 AOP などなどの機能はコンテナがほとんど自動で提供してくれる。 これにより、プログラマーはビジネスロジックの実装に集中できるようになる。 プロジェクト作成 コンテキストルートが ejb になるように、 NetBeans で Web プロジェクトを作成する。 Hello World
環境構築は こちら。 コードは GitHub に上げてます。 https://github.com/opengl8080-javaee-samples/servlet-jsp Servlet とは Java で Web アプリを作るときの基礎となる仕組み・フレームワーク。 Java EE は知らないけど、 Servlet なら知っているという人は多いかと。 Java で Web アプリを作る場合、 Servlet を直接実装することは基本的に無い。普通は、フレームワークを使う(Struts, JSF, JAX-RS, Spark, etc...)。 しかし、フレームワークは Servlet の上で動いているので、フレームワークを使いこなすためには Servlet の知識が必要になるときがある。また、フレームワークが対応していない機能を補完するために、 Servlet が提供する API を
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Java EE とは Java Platform, Enterprise Edition の略。 Java SE(Standard Edition) がデスクトップアプリケーション開発向けの仕様がまとめられているのに対して、Enterprise ーすなわち企業向けのアプリケーション(Web アプリとか)を開発するうえで必要になるライブラリやフレームワークの仕様がまとめられたエディション。 名称について 2014年12月現在の最新はバージョン7。 バージョン4までは J2EE (Java 2 Platform, Enterprise Ed
未だにモジュール管理してないので、基本っぽい RequireJS を勉強する。 RequireJS とは JavaScript 用のモジュール管理フレームワークの1つ。 JavaScript を実装していて、 view や model などで細かくファイルを分割していると、ファイル間の依存関係を意識して読み込む順序を注意しないといけなくなる。 (<script> タグの読み込み順序を調整するか、もしくはコンカチしているのであれば、そのコンカチ順序を管理しないといけない) ファイル数が少なかったり、個人で開発しているのであれば手動管理でも大きな問題はない。 しかし、ファイル数が多くなってきたり複数人で開発していると、手動管理では限界がある。 RequireJS では、 JavaScript のコードをモジュールという単位で管理する。 そして、各コードは実装の先頭で使用するモジュールを宣言する
そろそろサクラエディタを卒業してナウいテキストエディタに移ってみたいなと思って、噂の Sublime Text を使ってみたときのメモ。 早くも恋に落ちそうです。 環境は Windows7。 インストール 環境設定とか Package Control をインストール プラグイン管理用のプラグイン?。Eclipse のマーケットプレイス的なもの。 `Ctrl + `` でコンソールを表示させてから、以下をペースト+ Enter。 import urllib.request,os,hashlib; h = '7183a2d3e96f11eeadd761d777e62404' + 'e330c659d4bb41d3bdf022e94cab3cd0'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Heroku を使って Java の Web アプリを作ってみる。 基本的な話 Heroku とは PaaS の1つ。 Web アプリケーションを動かすための土台(プラットフォーム)を提供してくれるクラウドサービス。 Google でいうと Google App Engine、 Amazon でいうと AWS Elastic Beanstalk とかが同じようなサービスに当たる。 最初は Ruby (Ruby on Rails)をサポートした PaaS だったけど、現在は様々な言語によるプラットフォームをサポートしている。 Java も
これは、 G* Advent Calendarの15日目の記事です。 昨日は @int128 さんの Gradle Slashプラグインをリリースしました #gadvent でした。 明日は @tyama さんです。 はじめに Gradle 便利ですよね。便利すぎて Ant や Maven には戻れないです。 なにが良いって、設定ファイルである build.gradle の記述量が、 Ant の build.xml や Maven の pom.xml と比べると非常に少なくて済むのが良いです。 build.gradle は、設定ファイルと言いつつも、その実体は Groovy で書かれたスクリプトファイルです。 Gradle は、 Groovy の持つメタプログラミング機能や省略記法などを利用して、設定を簡潔に記述できるようになっています。 これはメリットなのですが、一方で Groovy の
package sample.lambda_behave; import static com.insightfullogic.lambdabehave.Suite.*; import java.util.Stack; import org.junit.runner.RunWith; import com.insightfullogic.lambdabehave.JunitSuiteRunner; @RunWith(JunitSuiteRunner.class) public class StackSpec {{ Stack<String> stack = new Stack<>(); describe("a stack", it -> { it.isSetupWith(() -> { System.out.println("isSetupWith"); stack.clear(); })
package com.example.ormlitesample; import com.j256.ormlite.field.DatabaseField; import com.j256.ormlite.table.DatabaseTable; @DatabaseTable public class TestTable { @DatabaseField(id=true) private Long id; @DatabaseField private String code; @DatabaseField private String value; @SuppressWarnings("unused") private TestTable() {} public TestTable(Long id, String code, String value) { this.id = id; t
Backbone.js を勉強した時のメモ。 Backbone.js とは CoffeeScript, Underscore.js などの作者である Jeremy Ashkenas が作っている JavaScript フレームワーク(jashkenas/backbone | Github)。 クライアントサイドで MVC を実装するための下地(骨組み)を提供する。 Angular.js がフルスタックで様々な機能が用意されているのに対して、 Backbone.js はあくまで Backbone(背骨)であり、骨組みを用意するのみ。 双方向のデータバインディングなどの機能はない。 肉付けをするのは、プログラマのお仕事。 機能が少ない分、覚えることは Angular.js に比べれば少ない、と思う。 Hello World 用意するファイル Backbone.js 本体。これがないと始まらない
次のページ
このページを最初にブックマークしてみませんか?
『@opengl-8080のマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く