SpringのDIが超べんり

warファイルの Property を war の外に出したいなぁ、と思っていると素敵な記事を発見。
http://ameblo.jp/spring-beginner/entry-10292117122.html

applicationContext.xml を以下のように記述してやればUTF-8のプロパティファイルにも対応出来ちゃう。

	<!-- properties -->
	<bean id="testProperty" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
		<property name="locations">
			<list>
				<value>file:c:/test/test1.properties</value>
				<value>file:c:/test/test2.properties</value>
			</list>
		</property>
		<property name="fileEncoding" value="UTF-8" />
	</bean>

上記、file:c の部分を Jetty の resources に出来ないかなぁ、と調査中。

(追記)ここ見るとはじめからresourcesにクラスパスが通っているっぽい。
http://wiki.eclipse.org/Jetty/Reference/Jetty_Classloading
なので file: を classpath: に変更してあげれば普通に外出しして使える。

slf4jのlogback.xml

ファイルのローテーションがうまく出来なくて悩んだのでメモ。

<configuration>

	<!-- logをファイルに出力 -->
	<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<File>/var/log/slf4jTest.log</File>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<FileNamePattern>/var/log/slf4jTest.%d{yyyy-MM-dd}.log</FileNamePattern>
			<MaxHistory>7</MaxHistory>
		</rollingPolicy>
		<encoder>
			<charset>UTF-8</charset>
			<Pattern>[%-5level][%d{yyyy-MM-dd HH:mm:ss.SSS}] %class - %msg%n</Pattern>
		</encoder>
	</appender>

	<!-- logを標準出力に出力 -->
	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
		<Target>System.out</Target>
		<encoder>
			<Pattern>[%-5level][%d{yyyy-MM-dd HH:mm:ss.SSS}] %class - %msg%n</Pattern>
		</encoder>
	</appender>

	<!-- ログ出力に関する設定 -->
	<root>
		<level value="info" />
		<appender-ref ref="FILE" />
		<appender-ref ref="STDOUT" />
	</root>

</configuration>

あと、特定のパッケージ毎にログレベルを指定出来るっぽい!すごいね!!!

参考URL:
http://kumagonjp2.blog.fc2.com/blog-entry-43.html
http://www.slf4j.org/extensions.html

追記)
↑のでパッケージ毎にログレベルを指定する件だけど、additivityを指定しないと2回同じログが出力されてしまいました。


ていうか、はてなダイアリーソースコードを書く方法を初めて知ったっていう(汗
ソースコードを色付けして記述する(シンタックス・ハイライト)

mavenで依存ライブラリ込みのjarを作る件

Mavenの依存ライブラリを含むjavaをjarにして、java -jar で実行したかったのですが。
どうにもうまくいかない事があったのでメモ。


jarの作り方は『maven 依存ライブラリ jar』で、google検索したらいっぱい出てくるので、
そのまんま丸コピしたら出来た。


でも、実行時になぜかメインクラスがjarに含まれないって怒られて困った。


Eclipseのm2eプラグインを入れて開発しているんだけれども、
ビルド時に、実行>Maven install でビルドしていたのがいけないっぽい。


実行>実行の構成でワークスペースの参照後、ゴールにpackageを指定したらうまく出来た。


installとpackageの違いってなんなんだろうねーヽ(´Д`;)ノアゥ...

最近のお仕事

最近はcassandraのORマッピングについて調査などしております。
kunderaというORMを使っているのですが、なかなかやりたい事が出来ない。。。

とりあえず本買いました。

Cassandra

Cassandra

mimeDecodeをインストール

クライアント様から pear のパッケージである Mail_Mime を利用するので、パッケージインストールしてください。
mimeDecode.php も使います。
みたいな連絡を受けたので、Mail_Mime をインストール。


$ pear install Mail_Mime


Mail_Mime をインストールしたら mimeDecode も一緒にインストールされる。
みたいな事が書いてあったんですが、なぜかインストールされていません。
どうもパッケージが分けられているようです。


以下のコマンドで Mail_mimeDecode をインストールしてやればうまくいきました。
$ pear install Mail_mimeDecode

yumが便利!!

去年末くらいにServersman@VPSさんのサービスを利用しはじめました。
その時、色々とパッケージをインストールするときに役に立ったのがyumコマンド!!


まず、yum とは何者なのか?
Yellow dog Updater,Modified の略で、パッケージのインストールやアップグレードを簡単にしてくれる便利なコマンドです。

今まで僕は、パッケージをインストールする為に、まずパッケージを配布しているサイトをみつけて、モジュールをダウンロード、サーバー上で解凍してインストール、とかしていました。
でも、yumならそんなまどろっこしい事しなくても、以下のような感じで簡単にインストールが出来ます。


$ yum install パッケージの名前


超簡単。


yumは、パッケージの名前をたよりに、リポジトリというパッケージのまとめサイトみたいな場所を見に行って、そこからパッケージをダウンロードするそうです。
だから、わざわざ自分で「どこからパッケージをダウンロードすりゃええのん?」などと、悩む必要がないのです。


※ちなみにリポジトリの設定は以下のディレクトリで確認できました。
/etc/yum.repos.d/(CentOS release 3以上)
/etc/yum.conf(CentOS release 3未満)



yumの便利なコマンド [確認]


インストール済みパッケージの一覧
$ yum list installed


インストール可能なパッケージの一覧
$ yum list


インストールしたパッケージでアップデート可能な一覧
$ yum list updates


パッケージの情報を表示
$ yum info パッケージの名前


特定のファイルが提供されているパッケージ名を調べる
$ yum provides パッケージ名


yumの便利なコマンド [管理]


パッケージをインストールする
$ yum install パッケージ名


パッケージをアップデートする
$ yum update パッケージ名


パッケージをアンインストールする
$ yum remove パッケージ名


パッケージを削除する
$ yum clean packages