frei

旧「anney's room」からブログ「frei」だけ引っ越し&残しました

Spring。

こんばんは、あに山@習うより慣れろです。

ここんとこのテーマは、Spring。

Springってーと、DIコンテナが肝?な訳ですが…って

DIって何よ?ってーと「依存性の注入」とかゆー曖昧さ。

もし外人が覚えたての日本語を駆使して会話中に

「イゾンセイ ノ チュウニュウ デース」とか言ったら

何言ってんだ、この外人…って思われる率87%な感じで

非常にとっつきにくい日本語だと思うんですが(笑)

確かに、どーにもこーにも、こればかりは

特にプログラマー以外に対して

簡単に表現するのは無理そうであります。

とりあえず、一番わかりやすい説明はここかなぁ…。

なにはともあれ、ちびっといじった簡単な操作をメモ。

あくまでメモです。解説はありません(^^;

それにしても、WEB+DB PRESS vol.27 の P.19からの

「DIで作る変更に強いビジネスロジック」は良い記事でした。

DIのみならず、DTOの使いどころもわかりやすかったし。

なんかモヤモヤしてたもんが、ちょっとスッキリしました(^-^)

おまけ。

Spring AOP with Hibernate by Spring-days

翻訳です。世の中翻訳してくれる方々に感謝。

日英対照javacのエラーメッセージ解説つき

世の中便利なもん用意してくれる方々に感謝。

J2SE5.0虎の巻 - XML に対応した Properties

java.util.Properties について。

Java Eclipse Extension Project

「文字エンコーディング - JSPJava に記述した特殊文字に対する文字エンコーディングについて、問題となりやすいケースなどを解説します」だそうです。

Java 国際化 FAQ

国際化について。…って、これ以前リンクしたっけ???

初歩なSpringいじりの内容。

2つのクラスのインスタンス生成を

Bean定義ファイルで設定しちゃうぞの巻。

-----------------------------------------

package model;

import java.util.List;

public class Person {

private String name;

private List hobbyList;

/**

* 名前を返す

* @return 名前

*/

public String getName() {

return name;

}

/**

* 名前をセットする

* @param name 名前

*/

public void setName(String name) {

this.name = name;

}

/**

* 趣味オブジェクトのリストを返す

* @return 趣味オブジェクトのリスト

*/

public List getHobbyList() {

return this.hobbyList;

}

/**

* 趣味オブジェクトのリストをセットする

* @param hobbyList 趣味オブジェクトのリスト

*/

public void setHobbyList(List hobbyList) {

this.hobbyList = hobbyList;

}

}

-----------------------------------------

package model;

public class Hobby {

private String name;

/**

* 趣味の名前を返す

* @return 趣味の名前

*/

public String getName() {

return name;

}

/**

* 趣味の名前をセットする

* @param name 趣味の名前

*/

public void setName(String name) {

this.name = name;

}

}

-----------------------------------------

Bean定義ファイル「applicationContext.xml

勿論、Listの値も設定出来るんです。

-----------------------------------------

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

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"

"http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

<bean id="anigon" class="model.Person">

<property name="name">

<value>あにごん</value>

</property>

<property name="hobbyList">

<list>

<ref bean="programming" />

<ref bean="german" />

<bean class="model.Hobby">

<property name="name">

<value>人間観察</value>

</property>

</bean>

</list>

</property>

</bean>

<bean id="kukumama" class="model.Person">

<property name="name">

<value>くくまま</value>

</property>

<property name="hobbyList">

<list>

<ref bean="programming" />

<ref bean="dance" />

</list>

</property>

</bean>

<bean id="programming" class="model.Hobby">

<property name="name">

<value>プログラミング</value>

</property>

</bean>

<bean id="german" class="model.Hobby">

<property name="name">

<value>独語</value>

</property>

</bean>

<bean id="dance" class="model.Hobby">

<property name="name">

<value>ダンス</value>

</property>

</bean>

</beans>

-----------------------------------------

テスト用 mainクラス

-----------------------------------------

package test;

import java.util.Iterator;

import model.Hobby;

import model.Person;

import org.springframework.beans.factory.xml.XmlBeanFactory;

import org.springframework.core.io.ClassPathResource;

import org.springframework.core.io.Resource;

public class Main {

public static void main(String[] args) {

Resource res = new ClassPathResource("applicationContext.xml");

XmlBeanFactory factory = new XmlBeanFactory(res);

Person anigon = (Person) factory.getBean("anigon");

System.out.println(anigon.getName());

showHobby(anigon);

Person kukumama = (Person) factory.getBean("kukumama");

System.out.println(kukumama.getName());

showHobby(kukumama);

}

private static void showHobby(Person person) {

Iterator iterator = person.getHobbyList().iterator();

while (iterator.hasNext()) {

Hobby hobby = (Hobby)iterator.next();

System.out.println(hobby.getName());

}

}

}

-----------------------------------------

結果:

あにごん

プログラミング

独語

人間観察

くくまま

プログラミング

ダンス

-----------------------------------------

…って、これのどこが便利なのか?

とか言われると困る。

なんでも使いようなのだー(?)。