Spring。
こんばんは、あに山@習うより慣れろです。
ここんとこのテーマは、Spring。
Springってーと、DIコンテナが肝?な訳ですが…って
DIって何よ?ってーと「依存性の注入」とかゆー曖昧さ。
もし外人が覚えたての日本語を駆使して会話中に
「イゾンセイ ノ チュウニュウ デース」とか言ったら
何言ってんだ、この外人…って思われる率87%な感じで
非常にとっつきにくい日本語だと思うんですが(笑)
確かに、どーにもこーにも、こればかりは
特にプログラマー以外に対して
簡単に表現するのは無理そうであります。
とりあえず、一番わかりやすい説明はここかなぁ…。
なにはともあれ、ちびっといじった簡単な操作をメモ。
あくまでメモです。解説はありません(^^;
それにしても、WEB+DB PRESS vol.27 の P.19からの
「DIで作る変更に強いビジネスロジック」は良い記事でした。
DIのみならず、DTOの使いどころもわかりやすかったし。
なんかモヤモヤしてたもんが、ちょっとスッキリしました(^-^)
Spring AOP with Hibernate by Spring-days
翻訳です。世の中翻訳してくれる方々に感謝。
世の中便利なもん用意してくれる方々に感謝。
J2SE5.0虎の巻 - XML に対応した Properties
java.util.Properties について。
Java Eclipse Extension Project
「文字エンコーディング - JSP や Java に記述した特殊文字に対する文字エンコーディングについて、問題となりやすいケースなどを解説します」だそうです。
国際化について。…って、これ以前リンクしたっけ???
初歩な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 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());
}
}
}
-----------------------------------------
結果:
あにごん
プログラミング
独語
人間観察
くくまま
プログラミング
ダンス
-----------------------------------------
…って、これのどこが便利なのか?
とか言われると困る。
なんでも使いようなのだー(?)。