- 寫好一個要被呼叫的檔案:LogProvider
- 寫好他在xml檔案中的註冊:beans.config.xml
- 寫一個呼叫他的檔案:Test3
package util;
public class LogProvider {
public void log(String s){
System.out.println(s);
}
}
<?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.xsd">
<bean id="logProvider" class="util.LogProvider"></bean>
<!-- ↑這就是一個Bean物件,被呼叫時就會new出一個util.LogProvider的物件 -->
</beans>
package org.iiiedu.samuel.ProjSpringDemo;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import util.LogProvider;
public class Test3 {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("beans.config.xml");
//↑Spring4.X之後用ClassPathXmlApplicationContext讀取Spring組態設定檔
LogProvider logger = (LogProvider) context.getBean("logProvider");
//以ID向Spring要求一個Bean
logger.log("Step 1 用ApplicationContext");
//logger是已經被Spring new好的物件,可以拿來用了
//-----------------------------------------------------------------------------------
//上面三行與下面六行作用相等,下面方式已遭放棄
DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(factory);
Resource resource = new ClassPathResource("beans.config.xml");//組態設定檔的名字
reader.loadBeanDefinitions(resource);
LogProvider bean = (LogProvider) factory.getBean("logProvider");
//以ID向Spring要求一個Bean
bean.log("Step 1 用BeanFactory");
}
}