タグ

2014年3月23日のブックマーク (10件)

  • S2Container の初期化 - ムードもりあげ楽団

    前回までで Seasar ではどのようにコンポーネントが生成されるのかが分かりました。まず、今回 Seasar のエントリ・ポイントは SingletonS2ContainerFactory#init() でした。ここで dicon ファイルの解析が行われて S2Container が生成され、 ComponentDef が S2Container に登録されるのでした。でも、恐らくコンポーネントは最初にコンテナを作った時点でコンテナに配置される筈です。SingletonS2ContainerFactory#init() を見てみましょう。 /** * 設定ファイルに基づいてS2コンテナを生成・初期化し、それを保持します。 既にS2コンテナが保持されている場合は何もしません。 * <p> * S2コンテナを生成した後、 初期化を行なう前に必要に応じて、 * 外部コンテキストおよび外部コンテ

    S2Container の初期化 - ムードもりあげ楽団
  • 5. ノンブロッキングチャネル

    5.1. SocketChannel/ServerSocketChannel 従来の java.net パッケージを使用した入出力では、ソケットの accept メソッドや read メソッドなどを呼び出すと接続や入力があるまで処理が待ち状態になりました。 このような入出力待ちの動作のことをブロックといいます。 接続の待ちうけでブロックが発生するため、複数のネットワーク接続を同時に処理するサーバアプリケーションを実装するにはマルチスレッドを利用する必要がありました。 マルチスレッドを利用したサーバアプリケーションの作成方法はネットワークプログラミング3章で説明しています。 しかしスレッドの生成はそれなりにコストのかかる処理であり、アクセスの多いサーバではその影響が無視できないくらい大きくなります。 そこで NIO ではブロックの発生しない入出力を実現する方法が提供されました。 ブロックされ

  • Javaクラス変数初期化のタイミング - めもめも

    柄にもなく(?)Javaネタです。。。 クラス変数にシングルトンをもたせる場合、コンストラクタ内で未初期化のクラス変数へのアクセスが発生する可能性があります。このあたりの確認です。 クラス変数としてシングルトンを生成・格納する場合 StaticNewInstance.java package sandbox; public class StaticNewInstance { static { System.out.println("Start: Initialize static"); } private static StaticNewInstance instance = new StaticNewInstance(); private static Object o = new Object(); static { System.out.println("Done: Initiali

    Javaクラス変数初期化のタイミング - めもめも
    go5025
    go5025 2014/03/23
  • 7. リスナー

    サーブレットでも様々なリスナーが提供されています。この章では、まずServletContextに関するリスナーの説明をします。次の章でセッションに関するリスナーの説明をします。 7.1. Webアプリケーションの起動/シャットダウンを検知する 「javax.servlet.ServletContextListener」はWebアプリケーションの起動/シャットダウンを検知するリスナーです。TomcatによってWebアプリケーションが起動/シャットダウンされた時にリスナーが呼ばれるので、Webアプリケーションの初期化や終了処理に利用する事ができます。ServletContextListenerで定義されているメソッドは以下の2つです。 // Webアプリケーションの起動時に呼ばれるメソッド void contextInitialized(javax.servlet.ServletContext

  • Tomcat 7も対応したServlet 3.0の変更点 後編

    Tomcat 7も対応したServlet 3.0の変更点 後編:Tomcat 7の新機能で何ができるようになるのか?(2)(1/3 ページ) 前回の「Tomcat 7も対応したServlet 3.0の6つの主な変更点」では、「Tomcat 7」が実装したServlet 3.0の新機能のうち「Ease of Development(EoD、開発容易性)」「Pluggability and Extendibility(モジュール化と拡張性)」について紹介しました。今回はAsynchronous processing(非同期処理)、セキュリティSession Tracking、マルチパート対応を紹介します。 アノテーションによる非同期処理 Servlet 3.0から非同期処理が使えるようになりました。Servlet 2.5までは、Servlet上でスレッドを生成・起動し、リクエストやレスポンス

    Tomcat 7も対応したServlet 3.0の変更点 後編
  • WEBで重い処理の進捗を表示する

    Webアプリケーションで時間の掛かる処理をキックする場合、進捗表示をしたくなることがあります。 Threadを立てて裏で処理するようにすれば可能なのですが、いろいろと面倒があるのでざっくり指針を書いてみたいと思います。 HTMLから定期的にアクセスする 進捗状況を知るために、HTML側から定時で繰返しアクセスさせる必要があります。 METAタグを使ってリロードさせる手法が一般的ですね。 <META HTTP-EQUIV="Refresh" CONTENT="5"> 上記例では5秒ごとのリロードです。 この方式だとページ全体を読み直すわけですが、 格好良くしようと思えばAJAX的手法を使って非同期通信する手法もあります。 とにかく、サーバに低的にアクセスします。これをポーリング(polling)といいます。 サーバ側ではセッションにThreadの管理オブジェクトを保管する サーバ側ではThr

  • Chef Soloの正しい始め方 | tsuchikazu blog

    伊藤直也さんのブログ(開発メモ#5 : Amazon Linux で knife-solo を使って chef-solo 実行 - naoyaのはてなダイアリー )でchef-soloが紹介され、Vagrantと一緒にちょっとしたビッグウェーブが巻き起こりました。 さらに昨日、入門Chef Solo - Infrastructure as Codeが達人出版からも発売開始。が出版される前に一度挫折したchef-soloですが、こののお陰でchef-solo童貞を卒業することができました。 続編も書きましたので、よろしければこちらもどうぞ 続編:さくらVPSの初期設定をChef Soloでやってみた〜サードパーティcookbookの使い方〜 | tsuchikazu blog なぜ挫折したかというと、Chefの公式ドキュメントが、量が多くてめちゃくちゃわかりにくいんです。naoyaさんの

    Chef Soloの正しい始め方 | tsuchikazu blog
  • chefでnodejsをインストールする - はわわーっ

    メモです。 debianのwheezy-backportsをリポジトリに追加して、nodejsをインストールするレシピ。 definitionsでリソースの定義をしてみた。 # site-cookbooks/nodejs/definitions/apt_repo.rb define :apt_repo, :uri => '', :distribution => '', :compornents => '', :deb_src => false do repo = "#{params[:uri]} #{params[:distribution]} #{params[:compornents]}" body = "deb #{repo}\n" body << "deb-src #{repo}\n" if params[:deb_src] execute 'apt-get update' do

    chefでnodejsをインストールする - はわわーっ
  • 今っぽい Vagrant + Chef Solo チュートリアル - Qiita [キータ]

    Vagrant と Chef Solo ってとてもベンリそうに見えてたのですが、ネット上にあるのは断片的な情報が多かったり、そもそもいろんなやり方があって混乱してたので、サックリ始めるためのチュートリアルを書きました。これをきっかけにベンリな Vagrant ライフを堪能して頂ければ幸いです。 [追記10/10/2013] Window 上の Vagrant でも問題なく動きました。ただ1点注意があって、UAC のポップアップに反応しないと、Vagrant か VirtualBox 側でタイムアウトになってしまうので、ポップアップを見張るか、放置したいなら一時的に無効にしておくとよいです。 [/追記終わり] [追記 10/23/2013] VirtualBox 4.3 だとまだうまく動かないようです(私も host-only adapter の作成で VirtualBox 側のエラーになり

    今っぽい Vagrant + Chef Solo チュートリアル - Qiita [キータ]
  • つくったchefリポジトリを会社のgithubにpushするまで - Qiita

    githubは初心者なので忘れないようにメモ。 詳細な説明は省きますが、まずgithubに登録して会社のgithubの二段階認証をなんとかします →会社で用意していただいたマニュアルのとおりに実施。 要はgmailの2段階認証みたいなことで携帯にSMS通知が届いて認証する仕組みのセットアップです。 接続するホストでsshの鍵の作成と、作成した公開鍵の登録をgithub側のユーザプロファイルで行います。 ・pushするホストでgitを初期設定する まずgitコマンド打つ人のユーザ情報を登録です。 git config --global user.email "komiyay@xxxxx"` git config --global user.name "Yxxx Komiya"

    つくったchefリポジトリを会社のgithubにpushするまで - Qiita