1、引入spring.jar包。
2、编写代码
说明:这些类和XML配置文件都在同一个包“springtest”中
接口类 TInterface.java
public interface TInterface {
public String getName();
}
接口实现类 TImpl.java
public class TImpl implements TInterface{
public String getName() {
return "this is spring test";
}
}
Ioc调用类 TService.java
public class TService {
public String printName(TInterface tinter){
System.out.println("TService:"+tinter.getName());
return "success";
}
}
XML配置文件 beans.xml
<?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="springtest" class="springtest.TImpl"></bean>
</beans>
测试主类 Test.java
public class Test {
public static void main(String[] args) {
// ApplicationContext ac = new ClassPathXmlApplicationContext("springtest/beans.xml");
// ApplicationContext ac = new ClassPathXmlApplicationContext("file:F:/netbeans project/TestWeb/build/web/WEB-INF/classes/springtest/beans.xml");
// ApplicationContext ac = new FileSystemXmlApplicationContext("build/web/WEB-INF/classes/springtest/beans.xml");
// ApplicationContext ac = new FileSystemXmlApplicationContext("F:/netbeans project/TestWeb/build/web/WEB-INF/classes/springtest/beans.xml");
Resource resource = new ClassPathResource("springtest/beans.xml");
BeanFactory ac = new XmlBeanFactory(resource);
TInterface tinter = (TInterface) ac.getBean("springtest");
TService tservice = new TService();
System.out.println(tservice.printName(tinter));
}
}
运行时结果正常,无异常情况
备注:XML配置文件路径的获取方法:
对于ClassPathXmlApplicationContext(), classpath: 前缀是不需要的, 默认就是指项目的classpath路径下面;如果要使用绝对路径,需要加上 file: 前缀表示这是绝对路径;
对于FileSystemXmlApplicationContext(), 默认表示的是两种:
1,没有盘符的是 项目工作路径, 即项目的根目录;
2,有盘符表示的是 文件绝对路径。
如果要使用classpath路径, 需要前缀 classpath.