Spring学習シリーズのBeanFactory入門(1)
4462 ワード
プロフィール:
SpringのBenFactoryインターフェースはSpringフレームの最も核心的なインターフェースであり、指定されたXMLファイルからデータを読み取って特定のBeanFactoryに戻すことができる高級なIoC構成機構を提供しています.本文では最も簡単な例からBeactory Factoryを使用する方法を示します.
Bikeクラス:
ライダークラス:
XML beanプロファイル:
テストクラス:
実行結果:
説明:ここでは、私たちのBikeとRiderは、パラメータを必要とせずに構成されています. XMLの構成ファイルにはBikeとRiderの属性と依存関係が伝達されています. は、複数の注入方式を用いて1つのビーンを取得することができ、この例は、単に属性注入 を用いているだけである.
SpringのBenFactoryインターフェースはSpringフレームの最も核心的なインターフェースであり、指定されたXMLファイルからデータを読み取って特定のBeanFactoryに戻すことができる高級なIoC構成機構を提供しています.本文では最も簡単な例からBeactory Factoryを使用する方法を示します.
Bikeクラス:
package com.james.beanfactory;
public class Bike {
private String brand;
private String type;
private int price;
public Bike() {
System.out.println("In Bike Constructor");
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public void display(){
System.out.println("This is " + brand + " " + type + ", You can get me by CNY: " + price);
}
public void rideTo(String add){
System.out.println("Riding to: " + add);
}
}
ライダークラス:
package com.james.beanfactory;
public class Rider {
private String name;
private Bike bike;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Bike getBike() {
return bike;
}
public void setBike(Bike bike) {
this.bike = bike;
}
public void rideTo(String to) {
System.out.println("In Rider.rideTo()");
bike.rideTo(to);
}
}
XML beanプロファイル:
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="bike" class="com.james.beanfactory.Bike"
p:brand="Giant"
p:type="ATX 770D"
p:price = "2598"
/>
<bean id="rider" class="com.james.beanfactory.Rider"
p:name="james"
p:bike-ref="bike"
/>
</beans>
テストクラス:
package com.james.beanfactory;
import java.io.IOException;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver;
public class BeanTest {
public static void main(String[] args) throws IOException {
// Read the XML configuration file.
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
Resource res = resolver.getResource("classpath:com/james/beanfactory/beans.xml");
System.out.println(res.getURL());
// Get and use bean.
BeanFactory bf = new XmlBeanFactory(res);
Bike myBike = bf.getBean("bike", Bike.class);
myBike.display();
// A Rider contains a Bike, The dependancy is set in xml.
Rider r = bf.getBean("rider", Rider.class);
r.rideTo("Tibet");
}
}
実行結果:
file:/E:/masterSpring/chapter3/WebRoot/WEB-INF/classes/com/james/beanfactory/beans.xml
2013-11-02 22:35:15,823 INFO [main] (XmlBeanDefinitionReader.java:315) - Loading XML bean definitions from class path resource [com/james/beanfactory/beans.xml]
In Bike Constructor
This is Giant ATX 770D, You can get me by CNY: 2598
In Rider.rideTo()
Riding to: Tibet
説明: