1. Reactive Webアプリケーション - そしてSpring 5へ Toshiaki Maki (@making) JJUG CCC 2015 Fall 2015-11-30 #jjug_ccc #ccc_ef3 2. 聞いたことあります? • Reactive Programming? • Reactive Manifest? • Reactive Streams? • Reactive Extensions? • Reactive ... ?
![Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3](https://cdn-ak-scissors.b.st-hatena.com/image/square/64eb735b5a175d54aeb1e4f0f77dddc5d31bf1e8/height=288;version=1;width=512/https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2Freactive-web-spring5-jjugccc-151128051833-lva1-app6891-thumbnail.jpg%3Fwidth%3D640%26height%3D640%26fit%3Dbounds)
Statistics Favorites 2 Downloads 0 Comments 0 Embed Views 36 Views on SlideShare 53 Total Views 89 Dislable java Presentation Transcript 第4回若手Webエンジニア交流会 in 2013/2/28 そういえば先週ですが… Ruby 20周年おめでとうございます 若手Webエンジニア= 基本的に新卒 3 年目前後のウェブエンジニア とのこと 大御所 LISP 55歳まだ若手 Perl 26歳 Haskell 23歳 Ruby 20歳 若手 Java 18歳 年齢で言うと JavaScript 18歳 18~27,8くらい? PHP 18歳 C# 11歳若すぎる Scala 10歳 Clojure 6歳 Go 4歳 大御所 LISP 55歳まだ若手 Perl
メモメモ。UserとGroupがmany-to-manyの関係で、Set User#getGroups()を介して指定のGroupに繋がっているUser達を取得したい場合のHQLクエリーの書き方。 select user from User as user join user.groups groups where groups.name = 'group1' joinしないといけないのか。where句だけで簡単に取れないのかなあ。 8/13追記)同じことをCriteriaでやる方法。 Criteria crit = session.createCriteria(User.class); crit.createAlias("groups", "g"); Criterion exp = Expression.eq("g.name", "group1"); crit.add(exp); Lis
前回のふりかえりと今回の概要 前回は、Rubyを習得する上で役立つ3点セットをご紹介した。すでに、マニュアルを参照したり、Rubyの拡張ライブラリがどう実装されているかなどをソースで確認された方も多いと思う。Rubyはオブジェクト指向言語でもあるので、Java開発者のあなたにはとっつきやすいと感じられる言語ではないだろうか。 ただ、RubyはJavaより後発の言語であり、他言語の長所を取り入れている。もちろん、便利なものは多用される。というわけで、Java開発者のあなたに「知っておくとRubyコードの理解にすぐに役立つもの」をご紹介したい。今回はぜひ押さえておいてほしい文法の「ブロック付きメソッド」を説明する。 ブロック付きメソッド 通常のメソッドは呼び出すときに引数を与えることができる。それと同じように、ブロック付きメソッドは、ブロックと呼ばれるコードを渡すことができる。 Javaのメソ
はじめに このジェネレータはJudeで作成したクラス図の情報を取得し、それを元に、ActiveScaffoldで必要なコーディングのソースを自動生成することにより、ActiveScaffoldの環境構築を行えば、クラス図を書くだけでActiveScaffoldのアプリケーションを作成できるというツールです。 早い話がクラス図を描いたら、とりあえずアプリケーションができますという話です。もちろん限定されたところにしか使えないと思いますが、JudeとRubyを活用してこんなに簡単にジェネレータが作れるというのを感じていただければ嬉しいです。ジェネレータを使用するための環境設定 最初にジェネレータを使用するに当たって、JRubyとLuRuJuというライブラリ、およびUMLツールのJudeのセットアップを行いましょう。JRubyのセットアップ JRubyはRubyのJavaでの実装です。通常のRu
要件定義→外部設計→(アーキテクチャ)→内部設計→コーディング→単体テスト→結合テスト 今回はアーキテクチャについてです。 レイヤー構成について、3パターンほど私が考える案を紹介します。 各コンポーネントの役割については、別途説明したいと思います。 Full Pattern 特徴 大規模アプリケーション向け。 コンポーネントを最も細分化したパターン。画面とロジックを分担して共同開発したり、フロー制御や他システム連携が多かったりするシステムに向く。 Serivceがトランザクション境界となる。 レイヤー構成 プレゼンテーション層 Action、Page、Dto サービス層 Service、Dxo ドメイン層 Logic、Dao、Entity Middle Pattern 特徴 中規模アプリケーション向け。 画面ロジックとドメインロジックを2つのレイヤーに集約させたパターン。大抵のシステムは、
ForEach内でのチェックボックスの使用例は以下の通りです。 一覧画面で先頭にチェックボックスがある画面はよくあると思います。 test.html <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Test</title> </head> <body> <form id
Teeda Extension コンポーネントリファレンス 目次 コンポーネント仕様一覧 form outputText inputText inputHidden inputRadio inputSecret inputTextarea inputFile popupCalendar selectOneMenu selectOneRadio selectBooleanCheckbox selectManyCheckbox commandButton forEach itemsSave itemsSessionSave label title link condition grid inputCommaText head include includeChildBody form formを表すコンポーネントです.input系コンポーネントを使う場合、Formコンポーネントは必須です.
Project Looking GlassはJavaで開発された3Dデスクトップ環境だ。ウインドウを半透明にしたり,立体的に表示したりできる。奥行きを持たせたアプリケーションの開発も可能だ。対応アプリケーションも多数搭載している。 Windows Vistaの登場時に話題となったのが「Aero」(エアロ)というデスクトップである。Aeroではデスクトップ上で,透過や3次元を用いたウインドウ表示を実現できる。例えば,ウインドウを半透明にする,開いているウインドウを紙をめくるようにパラパラと切り替える,といったことが可能だ。 Linuxでも,Aeroのようなデスクトップ環境を実現できる。2006年には,いわゆる3Dデスクトップを実現するウインドウ・マネージャである「Compiz」や「Beryl(関連記事)」が登場した。いずれも,ウインドウを半透明にしたり,デスクトップ画面を箱のように回転させて
このページはいわゆるStrutsとSpringの統合方法を紹介したページです。 StrutsからSpringのDI機能が使えるようになると、 ActionのプロパティをSpringから柔軟に注入できるようになるので、 Actionの共通化・再利用化が促進され、プログラムの品質が向上する。 Strutsに依存せずに処理部の単体テストが可能になる。 SpringのAOP(Aspect Oriented Programming)機能が使える。 等の利点があります。 この方法は後述のように幾つかありますが、 共通する基本はSpringで管理されているBeanを参照できるようにする、ということです。 この部分の設定は、Strutsと連係する場合だけでなく、 JSFや、その他のWebフレームワークとの連係の場合も同じ作業です。 spring.jar、log4j-*.jar、com
環境作り† Teeda入門を試すのに必要な環境作りに付いては Teeda/gettingStartedSetup を参照して下さい。 以下ではteeda-ex1プロジェクトを作成済みであるものとして説明します。 ↑ Teedaとは† TeedaはJSF実装をベースにしたWebアプリケーションフレームワークです。 Teedaは大きく分けて2つのpartがあります。 ・Teeda Core:JSF1.1の実装 ・Teeda Extension:HTMLテンプレートを持ったJSF拡張フレームワーク 基本的にお奨めの使い方はTeeda Core、Teeda Extensionを共に使っていただく使い方です。 が、Teeda Coreだけでも純粋なJSF実装としてお使いいただけます。 JSFは実はServlet以外にもPortletの方にも対応することが仕様で義務付けられていますが そちらの面もid
サンプル解説 teeda-exmapleのプログラムを順に解説します。 実際に動作するサンプルを参考に、teeda coreの使い方を学習しましょう。 hello.jsp helloDI.jsp addDI.jsp hello.jsp ブラウザで、http://localhost:8080/teeda-example/faces/hello/hello.jspにアクセスしてみましょう。 hello Teeda!と表示されるはずです。このサンプルでは、次のことを学びます。 Teedaによる通常のJSFの例。 それでは、通常のJSFの例のHTMLの中身を見てみましょう。 01:<%@ page contentType="text/html; charset=UTF-8" %> 02:<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"
WebアプリケーションではURLのわかりやすさも重要とされている。たとえば http://www.example.com/diary/diary.cgi?year=2007&month=05&day=12 というURLよりも http://www.example.com/diary/2007/05/12 というURLのほうがユーザにとってもわかりやすいし、検索エンジンにもクロールされやすいといわれている。 Apacheでは後者のURLへのリクエストを、サーバ内で前者のURLに書き換えて処理を行うための"mod_rewrite"というモジュールが存在する。mod_rewriteを使えば既存のWebアプリケーションに大きな修正を加えずに、後者のようなアクセシビリティの高いURLを提供することができる。また、サーバ上でWebサイトのフォルダ構成を変更した場合などもmod_rewriteを使用する
はじめに 最近のプログラムの多くは、最初から機能がすべて確定したものではなく、後からプログラマが拡張していけるような形をとるようになってきています。この種のプログラムでよく用いられるのが「プラグイン」でしょう。仕様にそって作成すれば誰でもプラグインを作り機能を拡張していくことができるというのはなかなか魅力的です。そこで、Javaプログラムでこうした「プラグインによる機能拡張」を実装する方法について考えてみることにしましょう。対象読者Javaを使ったプログラム作成を行っている中級レベルのプログラマ。プラグイン型のプログラム拡張に興味がある方。 プラグインによるプログラム拡張とは? 多くのプログラムでは、プラグインと呼ばれるプログラムを作成することで機能を拡張することができます。このプラグインというのは、大抵の場合、次のような働きをします。あらかじめ用意されている仕様に沿ってプログラムを作成す
The Spring Framework Projectは3日(米国時間)、DI(Dependency Injection)を実現するJ2EEアプリケーションフレームワーク「Spring Framework 2.0 (以下Spring 2.0)」を公開した。 Spring 2.0では、設定ファイルをXMLスキーマベースの文法で記述できるようになったことや、AOP(Aspect Oriented Programming)が拡張されてAspectJとの連携がより緊密になったことなどが主な変更点として挙げられている。その他、Java Persistence APIのサポートやスクリプト言語のサポートなど多くの新しい機能が追加された。 本稿では、Spring 2.0における変更点の目玉となるXML設定ファイルに焦点を当て、XMLスキーマを用いたBean定義の方法などを紹介する。
UML、なかでもクラス図はクラスの関係を把握するうえで欠かせないダイアグラムだ。できれば既存のAPIはクラス図を見て簡単に全容を把握しておきたい。その際に全自動でクラス図を作成できると大変便利だろう。そこで紹介したいのがUDocだ。こうした用途にぴったりのアプリケーションである。 UDocはJava クラスをUMLライクのダイアグラムによって視覚化するGUIアプリケーションだ。Javadoc、Javaバイナリファイル、Javaソースコードなどから動的に UMLライクのダイアグラムを生成できる。生成されるダイアグラムそのものを動的に編集することも可能なので、グリグリといぢりながらクラス関係を解析できるすぐれものだ。動作にはJDK 5.0かそれ以上のバージョンが必要。本稿執筆時点の最新版は12日(米国時間)に公開された1.005であり、GNU GENERAL PUBLIC LICENSE Ve
Googleは3月8日(米国時間)、Guiceの初のメジャーリリースとなるGuice 1.0を公開した。GuiceはJavaで開発されたDI(Dependency Injection)フレームワーク。シンプルなアーキテクチャになっており、アノテーションやジェネリックを活用した開発が特徴。 Guiceが依存性注入できるのはコンストラクタ、フィールド、メソッドなど。セッターメソッドにかぎらず、複数の引数をとるメソッドに対しても適用できる。そのほかの特徴としてカスタムスコープ、環状依存への対応、スタティックメンバーのインジェクション対応、Spring Frameworkとの統合、AOP Allianceメソッドインターセプションなどがある。 Guiceはすでに数カ月にわたり、Googleにおけるミッションクリティカルアプリケーションにおいて採用されている。Google最大のアプリケーションである
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く