2011-01-01から1年間の記事一覧

Spring Framework Advent Calendar 2011 終了のお知らせ

12日間やってきました*1が、ネタ的にも時間的にも限界が来ました。毎日続けるというのは、想像以上に大変なことですね。 *1:1日落としてますが...

Spring Framework Advent Calendar 2011 part.12 JSR-330 への対応

Spring Framework Advent Calender の 12 日目です。昨日に引き続き、アノテーションについての整理をしていきます。 JSR-330 Dependency Injection for Java JSR-330 は、いわゆる DI の標準仕様を定めるものです。Bob Lee (Guice 作者) と Rod Johnson (Sp…

Spring Framework Advent Calendar 2011 part.11 @Autowired, @Resource, @Qualifier

Spring Framework Advent Calender の 11 日目です。今日は、アノテーションベースでの DI を行うときに頻出のアノテーションとなる @Autowired, @Resource, @Qualifier について整理してみます。 @Autowired @Resource 出自 Spring 独自 JSR250 記述できる…

Spring Framework Advent Calendar 2011 part.10 英語圏の情報にアクセスする

Spring Framework Advent Calender の 10 日目です。今日は、機能紹介から少し離れて、Spring Framework に関する情報の集め方について整理してみます。 これは自分の所感なのですが、Spring 3.0 が登場する前あたりから、Spring の日本語情報がだんだん少な…

Spring Framework Advent Calendar 2011 part.9

coming soon...

Spring Framework Advent Calendar 2011 part.8 - Spring MVC で String 配列にカンマ入り文字列を渡すと分割されてしまう問題

Spring framework Advent Calender 8 日目です。本日は Spring MVC に戻って、配列型のチェックボックスにまつわる話題です。こんな画面を想像してください。よくある Web の入力フォームです。チェックボックスの部分に注目してください。この部分は、対応…

Spring Framework Advent Calendar 2011 part.7 - Spring Security で認証成功時に条件によって遷移先を変える

Spring Framework Advent Calendar の 7 日目です。今日はふたたび Spring Security の話です。小出しにしているような感もありますが、気にせずいきましょう。 以前 Spring Security でアカウントロック機構を実現する - 倖せの迷う森 にて、Spring Securit…

Spring Framework Advent Calendar 2011 part.6 - 同一リクエスト内で同じ値を返す Date の実装

Spring Framework Advent Calendar の 6 日目です。本日は夜に更新時間が取れないため、前倒しでの投稿です。内容も簡易版となっております。さて、時間もあまりないので単刀直入にいきます。同一リクエスト内で同じ値を返す実装と云うのは、つまりこういう…

Spring Framework Advent Calendar 2011 part.5 - Spring Security でセッションタイムアウト時の遷移先をカスタマイズする

Spring Framework Advent Calendar の 5 日目です。今日は Spring Security の話です。なんだか Spring MVC と Spring Security の話ばかりしているような気がしますが、あまり気にしないことにします。 セッションタイムアウト時の画面遷移 ログインが必要…

Spring Framework Advent Calendar 2011 part.4 - Spring MVC 3.1 で導入される Flash Scope

Spring Framework Advent Calendar の 4 日目です。今日は Spring MVC 3.1 の新機能について触れようと思います。 Spring MVC 3.1 では、@MVC*1 関連の機能がさらに強化されています。そのうちのひとつである Flash Scope について紹介します。なお、本記事…

Spring Framework Advent Calendar 2011 part.3 - Spring Security で LDAP 認証を行う

Spring Framework Advent Calendar の 3 日目です。早くもネタが尽きてきました。本日も Spring Security ネタです。業務アプリケーションにおけるユーザー認証で圧倒的に多いのは、DB接続を用いた認証でしょう。Spring Security はもちろん、ユーザーDBと認…

Spring Framework Advent Calendar 2011 part.2 - Spring Security の FilterChainProxy を使って ServletFilter の設定を Spring に移管する

Spring Framework Advent Calendar の 2 日目です。本日は FilterChainProxy についてです。Spring Framework を使っていると、協調する各プロダクトの設定ファイルを Spring の設定ファイルに統合したくなることでしょう。今回は、いつも web.xml に記述し…

Spring Framework Advent Calendar 2011 part.1 - Spring MVC で JSR-303 Validator を使う

前書き どうも、Java 界のぼっちこと max747 です。 さて 12 月といえば Advent Calendar の時期でございます。各種コミュニティで Advent Calendar の企画が立ち上がっておりますが、私はそれらを遠巻きに眺めつつ Spring Framework の Advent Calendar を…

yum や rpm でインストールした Jenkins の利用ポートを変更する

CentOS 上で Jenkins 環境を構築する際、yum や rpm で Jenkins をインストールすると、起動スクリプトもあわせてインストールされるため # service jenkins start# /etc/init.d/jenkins startなどのコマンドで起動できるようになり便利です。 では、これら…

Spring Security でアカウントロック機構を実現する

アカウントロック機構は、パスワード認証をともなうWebアプリケーションの開発ではしばしばセキュリティ要件として盛り込まれることがあります。また、Webサービスのユーザーとしても馴染みのある機能のひとつでしょう。今日は、この機能を Spring Security …

is 演算子は同一性、== 演算子は等価性

「初めてのPython」で読んだような気がするのだけど、すっかり忘れてしまっていたので。ちょっと検証してみます。 >>> class Foo(object): ... def __init__(self, x): ... self.x = x ... def __eq__(self, arg): ... return self.x == arg ... >>> >>> f =…

アプリケーションウィンドウのスクリーンショットを撮る

mac

Command+Shift+4, Space でマウスポインタがカメラアイコンになる。その状態でスクリーンショットを撮りたいウィンドウを選択する。スクリーンショットはデスクトップに保存される。 Command+Shift+4 の後、Space キーを押さずにマウスで矩形選択して、その…

ターミナルで exit したときにウィンドウを閉じる

mac

Mac のターミナルで exit したときに、デフォルトの動作では [プロセスが完了しました] と表示され、ウィンドウは自動的に閉じてくれない。そのため、明示的に x ボタンもしくは Command+w で閉じる必要がある。 この挙動は、環境設定で変更できるようだ。Ve…

テキストファイルを1000個作った

テストで大量のテキストファイルが必要になったので、生成用のスクリプトを scala で書いてみました。シンプルでいいですね!

MessageSource のメッセージから、プレースホルダーで別のプロパティを参照する

Spring の MessageSource は、メッセージ内に「{0}は必須項目です」のように { } 記号でプレースホルダーを置いておき、メッセージ取得時に動的に値を埋め込むことができます。こういった機能は Struts 以降の Web フレームワークには標準的に搭載されている…

SpringFramework のアノテーションで List や Map に外部から値を注入する

Spring の Bean に、 List や Set, Map の値を外部から注入したいという状況はしばしば発生すると思います。典型的なパターンのサンプルコードは以下のようなものでしょう。 public class SampleBean { private List<String> fruitsList; // ここに注入したい public</string>…

SpringFramework で特定の Bean のみ再読み込みする

以下のような Service クラスがあるとします。Dao へのアクセスは大変コストがかかるため、Bean の初期化時に afterPropertiesSet メソッド内で1度だけアクセスし、その結果を Map に保持するような仕掛けになっています。 @Service public class FooService…

JUnitでプラットフォーム依存のテストを行う

JUnitでプラットフォーム依存のテストを行いたい*1とき、みなさんはどうされているのでしょうか。テストメソッド内で System.getProperty("os.name") 等としてOS判定し、実行する処理を分岐させたりしているのでしょうか。 こんな感じで、アノテーションで実…

iText で大量の PDF をマージする

Java コードから PDF を取り扱う際には iText が便利で、Java が公用語の皆様はよく利用されていることでしょう。 PDF を結合して新たな PDF を作るには PdfCopy を利用するのが簡単です。しかし、大量の PDF を結合していくと、すぐに OutOfMemoryError が…

Spring MVC 3 のアノテーションスタイルで、複数の Submit ボタンがあるフォームに対応する

このようなフォームがあったとします。 <form action="/add/confirm" method="post"> <p><input type="text" name="name" /></p> <p><input type="text" name="age" /></p> <p> <input type="submit" name="confirm" value="確認" /> <input type="submit" name="back" value="戻る" /> </p> </form> これに対応する Controller のアノテーションは以下になります。params …

ジェネリクスがらみで各種 Java コンパイラーの挙動が異なる件

自分でもまだエラーの原因を特定できていないので、とりあえずメモレベル。 import java.util.ArrayList; import java.util.List; public class Foo {} class X<T extends X<T>> {} class Y<T extends X<T>> {} class Fuga { <T extends X<T>> void foo(Y<T> y) {} void main() { List<Y<? extends X<?>>> list = new ArrayList<Y<? extends X<?></y<?></y<?></t></t></t></t>…

寄付した内容まとめ

震災関連ネタ。 寄付に使ったサービス (2011/03/22時点) 楽天ポイントで寄付 1440円 (http://checkout.rakuten.co.jp/donation/index.html 〜2011/05/31) ニコニコ動画で寄付 4000円 (http://www.nicovideo.jp/bokin) SBIポイントで寄付 480円 (https://park…

MIME エンコードされた email の Subject をデコードする

メモしておかないと忘れそうなので。 # email.parser.Parser と email.header.decode_header をつかう >>> from email.parser import Parser >>> from email.header import decode_header # テキストファイルで保存されている email を開き、パースする >>> …