Spring获取资源文件
2015-11-16 11:02
501 查看
一:Spring中Resource定义资源
1.比较常用的资源定义的实现类为:
a.ClassPathResource 从classpath中读取
b.FileSystemResource 从文件系统中读取
c.UrlResource 从指定URL中读取
d.ServletContextResource 必须要在web环境下使用
2.案例代码
如果说BeanFactory是Spring的心脏,那么Application就是完整的身躯。ApplicationContext就是由BeanFactory派生出来的。
ApplicationContext的主要实现类是ClassPathXmlApplicationContext和FileSystemXmlApplicationContext,前者默认从类路径加载配置文件,后者默认从文件系统加载文件。
1.比较常用的资源定义的实现类为:
a.ClassPathResource 从classpath中读取
b.FileSystemResource 从文件系统中读取
c.UrlResource 从指定URL中读取
d.ServletContextResource 必须要在web环境下使用
2.案例代码
importorg.springframework.core.io.ClassPathResource; importorg.springframework.core.io.FileSystemResource; importorg.springframework.core.io.Resource; importorg.springframework.core.io.UrlResource; public class ResourceTest { //ClassPathResource @Test publicvoid test1() throws Exception{ Resourceresource1=newClassPathResource("com/cloud/day4/applicationContext_dao.xml"); //获取当前包的路径下【this.getClass()】 Resourceresource2=new ClassPathResource("applicationContext_dao.xml",this.getClass()); System.out.println(resource1.getFile().getAbsolutePath()); System.out.println(resource2.getFile().getAbsolutePath()); } //FileSystemResource @Test publicvoid test2() throws Exception{ Resourceresource=new FileSystemResource("f:/applicationContext_dao.xml"); System.out.println(resource.exists()); System.out.println(resource.getFile().getAbsolutePath()); } //UrlResource @Test publicvoid test3() throws Exception{ Resourceresource=new UrlResource("http://www.baidu.com/"); System.out.println(resource.exists()); System.out.println(resource.getFile().getAbsolutePath()); } //ServiceContextResource.需要在web环境下测试 @Test publicvoid test4() throws Exception{ //Resource resource = new ServletContextResource(servletContext,"/WEB-INF/classes/applicationContext.xml"); //System.out.println(resource); } }二:ApplicationContext定义资源文件
如果说BeanFactory是Spring的心脏,那么Application就是完整的身躯。ApplicationContext就是由BeanFactory派生出来的。
ApplicationContext的主要实现类是ClassPathXmlApplicationContext和FileSystemXmlApplicationContext,前者默认从类路径加载配置文件,后者默认从文件系统加载文件。
import java.util.Map; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.cloud.day3.UserDao; public classApplicationContextTest { @Test public void test1() throws Exception{ ApplicationContext ac1=newClassPathXmlApplicationContext("com/cloud/day5/applicationContext_dao.xml"); ApplicationContext ac2=new ClassPathXmlApplicationContext("applicationContext_dao.xml", this.getClass()); System.out.println(ac1.getBeanDefinitionCount()); System.out.println(Arrays.toString(ac1.getBeanDefinitionNames())); System.out.println(ac2.getBeanDefinitionCount()); System.out.println(Arrays.toString(ac2.getBeanDefinitionNames())); } /** * 一次加载多个配置文件 * @throws Exception */ @Test public void test2() throws Exception{ //这里文件的加载不考虑先后顺序,会自动处理文件的依赖关系 ApplicationContext ac1=newClassPathXmlApplicationContext(new String[]{ "com/cloud/day5/applicationContext_dao.xml", "com/cloud/day5/applicationContext_service.xml" }); System.out.println(Arrays.toString(ac1.getBeanDefinitionNames())); ApplicationContext ac2=newClassPathXmlApplicationContext(new String[]{ "applicationContext_dao.xml","applicationContext_service.xml" },this.getClass()); System.out.println(Arrays.toString(ac2.getBeanDefinitionNames())); } @Test public void testMrthod() throws Exception{ ApplicationContext ac=newClassPathXmlApplicationContext( "applicationContext_dao.xml",getClass()); //获取指定类型的bean的名称 Stringnames[]=ac.getBeanNamesForType(UserDao.class); System.out.println(Arrays.toString(names)); //获取指定类型的bean的信息,(key是名称,value是对象实例) Map<String,Object> map=ac.getBeansOfType(UserDao.class); System.out.println(map); } }
相关文章推荐
- Java多线程基础
- Java Timer和TimerTask实例教程
- myeclipse下部署项目不能finish
- MyEclipse
- Java设置定时任务
- Ubuntu下JDK及hadoop2.2.0的单机,伪分布式环境搭建
- struts2-convention-plugin零配置
- Spring Aop配置时的切入点表达式
- XXTEA+BASE64 JAVA
- Java 内存结构备忘录
- java正则表达式中 \d \D 有什么区别?
- java heap space 问题 java.lang.OutOfMemoryError: ChunkPool::allocate
- Java工作利器之常用工具类(四)——Json工具类,使用正则支持xml与json互转
- Java工作利器之常用工具类(三)——字符串工具类-智能截取
- Java工作利器之常用工具类(二)——数字工具类-大数乘法、加法、减法运算
- Java 反射
- Java工作利器之常用工具类(一)——数字工具类-数字转汉字
- Could not publish to the server. java.lang.NullPointerException
- FatMouse and JavaBean II
- springMvc时间格式化model的时间字段上填写