タグ

関連タグで絞り込む (155)

タグの絞り込みを解除

Javaに関するbigbroのブックマーク (351)

  • 列挙型専用のMap - java.util.EnumMap - HHeLiBeXの日記 正道編

    Java 5から列挙型(enum)が導入されたのに合わせて、列挙型の値をキーとするEnumMapというクラスが提供されているのを知り、またメモリ効率がよいという記述をどこかで見たので、ちょっと実験。 まず列挙型。 enum A { A_1, A_2, A_3; } 次にテスト用のクラス。EnumMapを一つ作り、そのコピーを指定した個数だけ生成してリストに格納する。 import java.util.EnumMap; import java.util.List; import java.util.Map; public class EnumMapTester { public void test(int n, List<Map<A, String>> list) { Map<A, String> m1 = new EnumMap<A, String>(A.class); for (A a

    列挙型専用のMap - java.util.EnumMap - HHeLiBeXの日記 正道編
  • JavaプログラマーのためのC#習得

    C#、それはマイクロソフトの放つプログラミング言語である。 そこにはJavaプログラマーの想像を絶する新しい仕様、新しいオブジェクトが待ち受けているに違いない。 このページは、C#の習得に踏み込んだJavaプログラマー歴15年間の筆者の驚異に満ちた物語である・・・。 前書き Javaプログラマーにとって、C#を習得することは簡単ではないかもしれません。確かに字面は似ている点も多いでしょう。しかし、似て非なることがあり、それはちゃんと理解していないと落とし穴となってしまいます。まったく違った方が幸いかもしれません。 また、Javaプログラマーから見ると、C#の言語仕様、命名規約、様々な慣習は、最初受け入れることが困難なことがあります。Javaがシンプルさを追求しているとしたら、C#は多様性を追求していると思います。Javaの世界から見ると、C#は実にごった煮な世界です。いいたいことも山ほどあ

  • Java のインタラクティブシェルを探して - miauのブログ

    一ヶ月ほど前から Java の案件に関わっていて、現在設計フェーズなんですが。私は Java に不慣れなので「こういう処理って Java で簡単に書けるんだっけ?」という場面が結構あります。 例えば今日だと「String#split でデリミタが先頭や末尾にある場合どうなるんだっけ?」といった疑問が沸いてきまして。正攻法はマニュアル嫁ってことになるんだと思いますけど、LL に慣れてると irb みたいなインタラクティブシェルで実際の動作を確認したくなってきます。 そんなわけで Java の動作を確認できそうなインタラクティブシェルについて、簡単に調査してみました。 Rhino 検索すると、 Java でスクリプトする ということで Java 製の JavaScript 実装である Rhino の例が出てきたので試してみます。 Rhino のダウンロード からダウンロード&解凍して、 >cd

    Java のインタラクティブシェルを探して - miauのブログ
  • SAStruts+Maven2+Subversionで開発を始めるまでの10ステップ - GeekFactory

    まずEclipse, Apache Tomcat, Subversiveを入れましょう。 sa-struts-tutorialを入手する プロジェクトのお手を入手します。zipを解凍したら、Eclipseにプロジェクトをインポートします。 Super Agile Strutsチュートリアル sa-struts-tutorial-1.0.x.zip http://sastruts.seasar.org/download.html m2eclipse Plugin EclipseからMaven2を使うためのプラグインを入れます。 下記のアップデートサイトからプラグインをダウンロードします。 http://m2eclipse.codehaus.org/update/ http://www.atmarkit.co.jp/fjava/rensai3/eclipseplgn11/eclipseplg

    SAStruts+Maven2+Subversionで開発を始めるまでの10ステップ - GeekFactory
  • Seasar2でdiconにアプリ設定を書く - NullPointer's

    「SAStrutsでアプリの設定はどう書く」の続き <component class="java.io.File" name="tmpDir"> <arg>"/tmp"</arg> </component> ognlでシステムプロパティを取り出せるので、例えばTomcatのcatalina.homeを指定出来る <component class="java.io.File" name="tmpDir"> <arg>@java.lang.System@getProperty("catalina.home")</arg> <arg>"tmp"</arg> </component> 以下と同じ File tmpDir = new File(System.getProperty("catalina.home"), "tmp"); Webアプリケーションのディレクトリを指定 <component c

    Seasar2でdiconにアプリ設定を書く - NullPointer's
    bigbro
    bigbro 2012/09/10
    diconファイルを設定ファイルとして使用する
  • SAStrutsでアプリの設定はどう書く? - NullPointer's

    例えばファイル出力先のディレクトリパスなど、アプリケーションの設定をどう書くべきか。propertiesファイルに書いて読み込めばいいと思ったが、そんな必要もなさそう。 コンテナに登録するコンポーネントは、インターフェースを実装したクラスである必要はないのだから、設定値をdiconに書いてコンポーネントとして登録し、Seasar 2.4から追加されたBindingアノテーションを使ってサービスやアクションのコンポーネントにセットしてしまうのが楽そうです。 <component class="java.lang.String" name="hoge"> <arg>"ほげほげ〜"</arg> </component> というのをどこかのdicon、例えばconfig.diconに書いてapp.diconでincludeするなどしてStringをコンポーネントとして登録。そして、その設定値を利用

    SAStrutsでアプリの設定はどう書く? - NullPointer's
    bigbro
    bigbro 2012/09/10
    diconファイルを設定ファイルとして使用する
  • はてなブログ | 無料ブログを作成しよう

    来年も作りたい!ふきのとう料理を満喫した 2024年春の記録 春は自炊が楽しい季節 1年の中で最も自炊が楽しい季節は春だと思う。スーパーの棚にやわらかな色合いの野菜が並ぶと自然とこころが弾む。 中でもときめくのは山菜だ。早いと2月下旬ごろから並び始めるそれは、タラの芽、ふきのとうと続き、桜の頃にはうるい、ウド、こ…

    はてなブログ | 無料ブログを作成しよう
  • オレオレAjaxアノテーションで超簡単Ajax - 出羽ブログ

    チュートリアルのダウンロードのソース見てたら「あれ?これパクれば Ajax できるんじゃね?」と思ってさっそくやってみた。クラス名とか気にしないで・・・。 すぱいだー日記さんにインスピレーションを受けて SAStrutsで自前AjaxアノテーションとAOPを使って 超簡単にAjaxできてしまうプログラムを書いてみた。 Action側のコードはこんな感じ。 public class AjaxTestAction { public String hoge; public String fuga; @Ajax @Execute(validator = false) public String callAjax() { return hoge + " と " + fuga; } } 通常のSAStrutsの実行メソッドに 自前で作った@Ajaxアノテーションを付けるだけ。 呼び出し側のJSPは以下

    オレオレAjaxアノテーションで超簡単Ajax - 出羽ブログ
  • ResourceSynchronizerスゲー - 出羽ブログ

    SAStrutsのチュートリアルの「リッチなエラーページ」と 「ResourceSynchronizer」の組み合わせはマジですごい! どんな感じでスゲーのかはを順を追ってみてみましょう。 1.Exception発生時に表示されるページ 初期表示はスタックトレースですが、左側のツリービューで選択することで、 「リクエストパラメータ」、「HTTPヘッダー」、「クッキー」、「リクエスト属性」、 「セッション属性」などを閲覧できます。 2.スタックトレースの各行にある+印をクリックすると、ソースコードの一部をブラウザ上から閲覧できる 3.しかも、自動的にEclipse上でソースコードが開く セットアップ手順 その1.SAStrutsのチュートリアルをダウンロードする http://sastruts.seasar.org/download.html その2.以下のページを参考にチュートリアルをセッ

    ResourceSynchronizerスゲー - 出羽ブログ
  • S2AbstractServiceを用いたAction-Service-Logicパターン - 出羽ブログ

    以前に「1.5階層のAction-Service-Logicパターン」を紹介させて頂きました。今回は、このアーキテクチャにS2AbstractService を導入した場合のアーキテクチャについて検討してみました。 主な変更点として、S2AbstractService を導入する場合は、アクションやロジックから直接JdbcManagerを使うこと得策ではないと考え、データアクセスロジックは全てサービスを経由するようになった点です。 まずは、アーキテクチャを図示したものをご覧ください。細かい解説は別エントリにて書かせて頂きますが、エンティティ単位のサービスを採用しつつも、ユースケース固有のロジックはアクションに記述する方法を提示したいと思います。 アーキテクチャ(レイヤ構成図) アーキテクチャ(モジュール相関図)

    S2AbstractServiceを用いたAction-Service-Logicパターン - 出羽ブログ
  • 1.5階層のAction-Service-Logicパターン - 出羽ブログ

    趣旨とあんまり関係ないですが、Service・Logicをとりまぜた3階層にするならば、エンティティによったものをService、アクションによったものはLogicと呼んだ方が、フレームワーク側の呼び方との親和性は高いように思います。 ちなみに、今はこんな感じの設計はどうかと思っています。 Serviceクラス:エンティティと対につくる。ドメインモデル的な考え方がプロジェクト内でついていけないならばいっそのこと導入しない。 Logicクラス ・ユースケースを跨がる画面まわりの制御処理や、ユースケースをまたがるビジネスロジック特有の処理を書く。いわゆる、サブシステム間共通関数のイメージ。たとえば複数ユースケースであるケースでは沢山の表にインサートするが、あるケースではアップデートのみするようなものを使う。 ・ただし、Serviceクラス的設計が難しい場合には、画面制御的なクラス Servic

    1.5階層のAction-Service-Logicパターン - 出羽ブログ
  • Action-Service-Logic の3階層は冗長か? - 出羽ブログ

    エンティティ固有のドメインロジックは別出しにします。 ひがさんが最近呼んでる「Service」に近いです。 でも、みなさん Action-Service-Logic の3階層は冗長ってお考えなんですね。 そうでもないですよ。今、私が携わらせて頂いている案件では、 Action : コントローラ Service: ユースケース単位のロジック + データアクセス Logic : エンティティ単位のロジック + データアクセス ※ LogicはActionとServiceの両方から呼び出し可能とする。の方式に数人の中核のメンバーから納得感を得ています。 無難な選択肢だと思います。 一見冗長に思えますが、「ユースケース単位のロジック」と「エンティティ単位のロジック」を1種類のクラスに寄せる方式はどこかで無理が生じてしまいます。そう考えると、この方式は自然な発想ではないでしょうか。 この方式のポイン

    Action-Service-Logic の3階層は冗長か? - 出羽ブログ
  • SessionスコープのオブジェクトをEL式で参照する場合ではまったこと - suusuke@Hatena

    今思うと全然たいしたことじゃないけど、ちょっとはまったのでその時試したことを書きます。 現象 SessionスコープのオブジェクトのpublicフィールドがEL式で参照できない。 getterを追加すると参照できる。 ユーザ情報を保持するDto セッションとして保持するユーザ情報のDto。 クラスに@Component(instance = InstanceType.SESSION)を設定。 jp.co.suusuke.dto.UserDto public String code; public String name; ログインアクション リダイレクトで社員側のトップページへ遷移する。 jp.so.suusuke.action.LoginAction // ログインフォーム @Resource(name = "loginForm") @ActionForm protected Login

    SessionスコープのオブジェクトをEL式で参照する場合ではまったこと - suusuke@Hatena
  • ネストした子のバリデーション - 出羽ブログ

    ネストした子Dtoのバリデーションはやってくれない? とりあえず検証メソッドかな。 私も以前に確認したのですが、 アノテーションによるネストした子Dtoのバリデーションは、 複雑なことは対応しないという方針に基づいて、 やってくれないのが仕様です。 あと、私も以前にネストしたDto(スコープはセッションでした)に バインドする方法を試みたのですが、以下の理由でやめました。 検証メソッドはアノテーションに比べて面倒 Dtoが持つプロパティの型がStringかbooleanになってしまうためロジックで扱いづらい チェックボックスを受ける時にハマりやすい アクションフォームのリセットメソッドに相当するものがなくて困ります。 Dtoがセッションで検索条件を保持した場合にブラウザの戻るボタンでクライアントとサーバーの状態がズレて挙動がおかしくなって悩む 自分が選択した代替手段としては、 一度アクショ

    ネストした子のバリデーション - 出羽ブログ
  • よく使いそうなメソッド

    たいてい、どこのプロジェクトでもあると思いますけど。 研修中とかの考え方の参考にどうぞ。 (多分、このままコピってもダメです) ログとかは、開始位置、終了位置に、出力を設定する。 チェックメソッドでは、falseの時に、メッセージを設定すれば、どの条件でエラーとなったのか分かる。 1.文字列除去 // 呼び元 String str = deleteString("ABCDE", "BC"); (str = "ADE") /** * 指定の文字列を除去する。 * @param sString 編集文字列 * @param sDelete 削除文字列 * @return 除去した文字列 * */ public static final String deleteString(String sString, String sDelete) { String sResult; // 結果文字列 s

    bigbro
    bigbro 2012/09/10
  • 繰り返し項目の実装はDtoとEntityのどちらを使うべきか? - 出羽ブログ

    『複数レコード処理(繰り返し)』の場合に、Entityをそのまま使うというのに違和感を感じてしまうのですが、そんな感覚にはこだわらない方が良いのでしょうか。 導出項目を得るような処理というのはプレゼンテーションロジックなのだから、DTOに値をコピーして、DTOのgetterで実装するようにした方が良いような気がしてしまっているのですが。 私の以前のエントリでは、繰り返し更新がなければDtoのではなく、Entityを積極的に使うことを書きました。でもDtoを使うケースでも特に問題ないと思います。ただし、メリット・デメリットは、把握しておいた方がいいと思います。 【メリット】 繰り返し処理には、常にDtoを使うため、設計に一貫性がでる。実装者も迷わない。 【デメリット】 プレゼンテーションモデル側で導出項目のロジックを用意すると重複しやすい。 繰り返し更新が必要となるケースは比較的少ない状況に

    繰り返し項目の実装はDtoとEntityのどちらを使うべきか? - 出羽ブログ
  • SAStruts + S2JDBCのアーキテクチャを図示してみる - 出羽ブログ

    SAStruts と S2JDBC を使って少し複雑なケースのWebアプリを開発する際において、現時点で自分が一番良いと考えているアーキテクチャを図示してみました。 なかなか良い感じです。あえて、課題をあげるならば、次の2点です。 アクションフォームの内部クラスに @Component(instance = InstanceType.SESSION) を付けて、スコープをセッションにしたいができないこと(やり方が分からないだけだと思う。)←できないことが判明しました ユースケースをまたいでアクションフォームを使用しない方針とした場合、検証メソッドをアクションフォームに書きたくなるが現状ではアクションにしか書けないこと。 追記: 1.0.3-rc1 より検証メソッドはアクションフォームに書くことができるようになります。 よって、検証メソッドはアクションからアクションフォームへ移すことをオスス

    SAStruts + S2JDBCのアーキテクチャを図示してみる - 出羽ブログ
  • はじめてのSAStruts 6週目 - 130単位

    はじめてのSAStruts 5週目 - 130単位 の続きです。 いろいろやっていたと思うのですが、あまりメモに残してなかったのでざっくりと。間違った情報があったら申し訳ありません。 2/9〜2/13 エンティティとテーブルの再構築 とりあえずIntegerとString(VARCHAR)で開発を進めていた 実際の現行テーブルは数値にはNUMERIC、文字列にはCHARが使われていた というわけで型を揃えることにした gen-entityを行うと以下のようになった NUMERIC (DB2) → BigDecimal (Java) CHAR (DB2) → String (Java) gen-ddlでは以下のようになる BigDecimal (Java) → DECIMAL (DB2) String (Java) → VARCHAR (DB2) BigDecimal/DECIMAL、Str

  • はじめてのSAStruts 5週目 - 130単位

    はじめてのSAStruts 4週目 - 130単位 の続きです。 DBアクセス処理を実装していくにあたり、O/RマッパーのS2JDBCを格的に使い始めました。 2/2〜2/6 複数のスキーマからエンティティ自動生成 スキーマ毎にxml定義を作成してみる 「schemaname」に対象のスキーマ名を記述 Gen-Entityのみで、他のタスク(Geb-Namesとか)には不要 それぞれのxmlをAnt実行 (ただし基的に最初の1回しか実行しないため、1ファイルで都度書き換えればよいのかも) DDL生成時(Gen-DDL)は、1つのxmlを実行すればよい(エンティティでの指定が必要(後述)) 参考:Seasar2 - S2JDBC-Gen - Gen-Entity ▼s2jdbc-gen-build.xml <project name="app-s2jdbc-gen" default="g

  • はじめてのSAStruts 4週目 - 130単位

    はじめてのSAStruts 3週目 - 130単位 の続きです。 この週でView(JSP)が一通り完成しました。 1/26〜1/30 開発環境再構築 何かの拍子に設定を間違えたかで、エラーが出るようになったため SAStruts開発に特化した「Eclipse IDE for SAStruts Developers」を新たにインストール (Eclipseは3.3、Tomcatは6.0.16) 日語化やプラグイン導入の手間が省けて、かなり楽に済んだ 配布元:no title 導入手順:no title Doltengでプロジェクト再作成後、バックアップしておいたファイルをインポート アノテーションによるバリデーション 同一アクションフォームでの異なる登録処理で、検証項目を分けたい場合 target属性でメソッド名を指定 対象メソッドが複数の場合はカンマとともに記述 プロパティ名ではなく任意