Going my way

いいなと思ったことをメモしていきます。

全くの初心者がSpringフレームワークをダウンロードしてからeclipseで動かすまで


Advertisements


Springを公式サイトからダウンロードしてからeclipseで軽く動かすまでの手順を載せます。
僕は半年前までフレームワークを使ったことがなく、eclipseフレームワークを使うこともなかったのですが、全くの初心者である自分に向けるつもりでまとめます。


①Springsource communityにページにいく
http://www.springsource.org/


②右下にある「Spring Framework」をクリックする
f:id:go_my_own_way:20120707211650p:plain


③「Spring Framework 3.0.7.RELEASE」の「Download」をクリックする
f:id:go_my_own_way:20120707211733p:plain


④メールアドレス等を登録する。
登録してもメールが来たりはしません。

⑤More >>「spring-framework-3.0.2.RELEASE-with-docs.zip」をクリック
f:id:go_my_own_way:20120707211817p:plain

eclipseのプロジェクトを右クぷリック→プロパティ→Javaのビルドパス
f:id:go_my_own_way:20120707211914p:plain

ダウンロードしたzipを展開したらできる、
\spring-framework-3.0.2.RELEASE-with-docs\spring-framework-3.0.2.RELEASE\dist以下のJarを追加しておく。

・commons-logging.jarも外部jarに追加しないとエラーが出る
http://sourceforge.jp/projects/sfnet_webolab/downloads/0.9/lib/commons-logging.jar/


ここからは、サンプルを作ってみます。
プロジェクト配下に「sample1」というパッケージを作ってください。

sample1の下に、以下の3つのファイルを作成します。


Main.java

package sample1;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.FileSystemResource;

public class Main {
	public static void main(String[] args){
		BeanFactory factory = new XmlBeanFactory(new FileSystemResource("beans.xml"));
		CallName cn = factory.getBean("callName",CallName.class);
		cn.callName("go my own way!");
	}
}


CallName.java

package sample1;

public interface CallName {
	public void callName(String name);
}


CallNameImpl.java

package sample1;

public class CallNameImpl implements CallName{
	public void callName(String name){
		System.out.println("good morning!" + name);
	}
}


で、プロジェクト直下にbeans.xmlを配置します。

<?xml version="1.0" encoding="UTF-8" ?>

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
    <bean id="callName" class="sample1.CallNameImpl" />
</beans>


eclipseでフォルダ構成を見るとこんな感じ。
f:id:go_my_own_way:20120707213316p:plain


実行結果
f:id:go_my_own_way:20120707213324p:plain

BeanFactoryに定義されているメソッドで、
getBean(id名, Class名)
があるけれど、ここはbeans.xml

<bean id="callName" class="sample1.CallNameImpl" />

ここの部分の記述に対応しています。
getBeanは引数に指定された名前のBeanインスタンスを生成して返します。

<bean ~~~ />

このまとまりを「bean」といって、

idとは、Beanに対して付ける識別子です。これは一意でなければいけません。
classとは、Beanのクラス名のことです。ここは完全修飾名で記述します。

注目すべきは、Mainでnewを使ったインスタンス化をしていないことです。

インスタンス化はSpringがやってくれて、オブジェクトを渡してくれるのです。

ここまで参考にした書籍は下記です。

次は、この前書いたFTPの転送ツールをセッターインジェクションを使って書き直してみたいと思います。