Spring的Ioc简单使用实例(含XML配置文件路径知识)

时间:2021-01-04 16:28:57

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.