Spring获取资源文件

来源:互联网 发布:网络教育自我鉴定200字 编辑:程序博客网 时间:2024/05/17 17:45

一:Spring中Resource定义资源

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);     }  }






0 0
原创粉丝点击