使用Sping当中的Resource来获取Web项目资源路径
以前好像使用过,但是很久没用了,结果给忘记了。最近在项目当中因为自己
定义了一个xml文件,测试的时候无所谓,结果当要发布的时候竟然发现无法方
便的获取自己配制的这个文件的相对路径 ,晕。。
但是记得当时解决过这个问题,就是想不起来,在网上查了资料结果就不是写
的一知半解就是写的很乱根本就没有写的明白点的,因自己受过苦,希望给与
那些还在用spring框架但是因无法方便的使用相对路径的人方便。
package test.org.spring.resource;
import java.io.IOException;
import junit.framework.TestCase;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import org.springframework.core.io.Resource;
public class ResourceBeanTest extends TestCase {
public void testResource() throws IOException{
ApplicationContext context=new FileSystemXmlApplicationContext("OperationFile/ResourceTestFile.xml");
ResourceBean d=(ResourceBean)context.getBean("resourceBean");
assertNotNull(d);
Resource r=d.getResource();
System.out.println(r.getURL().getPath());
}
}
测试文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean id="resourceBean" class="test.org.spring.resource.ResourceBean">
<property name="resource" value="WEB-INF/config.xml"/>
</bean>
</beans>
spring配制文件
package test.org.spring.resource;
import org.springframework.core.io.Resource;
public class ResourceBean {
private Resource resource;
public Resource getResource() {
return resource;
}
public void setResource(Resource resource) {
this.resource = resource;
}
}
class代码。
运行一下一切都清楚了。
运行时记得吧包名改掉哦。。
其实看一下Spring源代码当中的恶core部分的Resource接口就知道了
最重要的是他把String形自动的改成了Resource形 。
如果有兴趣知道其中奥妙可以看一下Spring 的源代码
在这里我就不罗嗦了
[该贴被bosslee于2007年08月30日 15:17修改过]
[该贴被bosslee于2007年08月30日 15:18修改过]