`
喜欢蓝色的我
  • 浏览: 370195 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

通过Spring Resource接口获取资源(实例一)

    博客分类:
  • java
 
阅读更多

该方法实现读取本地文件--》解析文件(调用其他方法)-》操作完改数据库状态

public static void analysis(String test_name,int do_number){
        //  String test_name,test_result;
        //  int do_number;
          String result;
          int id;
         
     
          try {   
                //register driver and connect the database
                Class.forName("com.mysql.jdbc.Driver");
                try {
                    String url = String
                            .format("jdbc:mysql://%s/%s", host, database);
                    con = DriverManager.getConnection(url, username, pwd);
                    statement = con.createStatement();
                    statement1=con.createStatement();
                    statement2=con.createStatement();
                   
   
                   
                    FileWriter fw=null;
                    rs = statement.executeQuery("SELECT id FROM service_testcase WHERE test_name ='"+test_name+"'");
                    if(rs.next()){
                        try{
                            id = rs.getInt("id");//1 id
                            System.out.println("id,testcase_id is "+id);
                            rs1 = statement.executeQuery("SELECT result FROM service_jmetertask WHERE testcase_id ='"+id+"' and do_number ='"+do_number+"' and status = 3");//通过id+do_number+status的到result
                           
                            if(rs1.next()){
                                try{
                                    result = rs1.getString("result");
                                    //将结果写入jtl文件
               
                           
                            //anlyaze  xml file
                            PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();

/*  PathMatchingResourcePatternResolver是一个通配符的Resource查找器,包括:
/WEB-INF/*-context.xml
com/mycompany/**/applicationContext.xml
file:C:/some/path/*-context.xml
classpath:com/mycompany/**/applicationContext.xml

类文件等*/   
                            Resource[] resources = resolver.getResources("file:"+result);

-----------------------------------------------------------------------------------------------------------------------------------------

java代码:
查看复制到剪贴板打印 @Test  public void testClasspathAsteriskPrefixLimit() throws IOException {      ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();      //将首先通过ClassLoader.getResources("")加载目录,      //将只返回文件系统的类路径不返回jar的跟路径 
    //然后进行遍历模式匹配      Resource[] resources = resolver.getResources("classpath*:asm-*.txt");      Assert.assertTrue(resources.length == 0);      //将通过ClassLoader.getResources("asm-license.txt")加载      //asm-license.txt存在于com.springsource.net.sf.cglib-2.2.0.jar      resources = resolver.getResources("classpath*:asm-license.txt");      Assert.assertTrue(resources.length > 0);           //将只加载文件系统类路径匹配的Resource      resources = resolver.getResources("classpath*:LICENS*");      Assert.assertTrue(resources.length == 1);  } 
对于“resolver.getResources("classpath*:asm-*.txt");”,由于在项目“resources”目录下没有 所以应该返回0个资源;“resolver.getResources("classpath*:asm-license.txt");”将返回jar包 里的Resource;“resolver.getResources("classpath*:LICENS*");”,因为将只返回文件系统类路径资 源,所以返回1个资源。
       因此在通过前缀“classpath*”加载通配符路径时,必须包含一个根目录才能保证加载的资源是所有的,而不是部分。

三、“file”:加载一个或多个文件系统中的Resource。如“file:D:/*.txt”将返回D盘下的所有txt文件;

-----------------------------------------------------------------------------------------------------------------------------------------------
                            if(resources.length == 0) {
           
                                throw new IllegalArgumentException("Property source not set correctly, no JMeter Result XML file found matching "+result);

                              }

                              //get first file for now.
                              //TODO: what to do if there are more files matching the pattern?
                              File resource = resources[0].getFile();

//getFile():返回当前资源对应的File。如果当前资源不能以绝对路径解析为一个File则会抛出异常

                              Reader data;
                              if(resource.getName().endsWith(".gz")) {
                                data = new InputStreamReader(new GZIPInputStream(new FileInputStream(resource)));
                              }
                              else {
                                data = new FileReader(resource);
                              }

                              try {
                                new parser().analyze(data,id,test_name,do_number,username, pwd, host, database);//call the analyze() to get the results
                              
                              }
                              finally {
                                data.close();
                              }
                             
                              //更改service_jmetertask的status状态
                       
                              String sql="UPDATE service_jmetertask SET status= 4 WHERE testcase_id = '"+id+"'";
                              try {
                                    statement1.executeUpdate(sql);//use new connection to execute new sql
                                } catch (SQLException e) {
                                    // TODO Auto-generated catch block
                                    e.printStackTrace();
                                    e.printStackTrace();
                                    log.warn(e);
                                }
                        }catch(Exception e){
                            System.out.println("数据库读取错误rs");
                            e.printStackTrace();
                            log.warn(e);
                            }
                    }
                        }catch(Exception e){
                    System.out.println("数据库读取错误rs1");
                    e.printStackTrace();
                    log.warn(e);
                    }
                    }
                }catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
          }catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally {
                    if (statement != null) {
                        try {
                            statement.close();
                        } catch (SQLException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                    }
                    if (con != null) {
                        try {
                            con.close();
                        } catch (SQLException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                    }
      }
          }
     
     
    

分享到:
评论

相关推荐

    spring Resource管理详解

    Spring的Resource接口是访问资源的抽象,它提供了一种统一的资源访问方式,可以处理不同来源的资源,包括本地文件系统、类路径、URL等。Resource对象并不直接包含资源内容,而是提供了打开输入流、获取资源路径等...

    Spring_ClassPathResource获得bean对象

    在Spring框架中,ClassPathResource是获取类路径资源的一个重要工具。它允许我们从类路径(classpath)中读取文件,如配置文件、属性文件等,这对于构建和管理Java应用程序非常有用。本篇文章将深入探讨如何使用Spring...

    spring-resource

    在实际使用中,我们通常会通过Spring的`ApplicationContext`或者`ResourceLoader`来获取`Resource`实例,然后调用其`getInputStream()`方法获取输入流,进一步读取配置文件内容。例如: ```java Resource resource ...

    spring-mvc 官方实例

    9. **国际化与本地化**:Spring MVC提供了资源包(Resource Bundle)支持,可以实现多语言环境下的应用。使用LocaleResolver和MessageSource可以处理不同地区的语言和格式。 10. **RESTful API**:Spring MVC支持...

    spring中的资源访问宝典

    本文将详细介绍Spring如何通过`Resource`接口及其实现类来简化资源的访问。 首先,传统的资源访问方式通常依赖于`java.net.URL`和文件I/O操作,这种方式不仅代码复杂,而且效率较低。例如,在`URLTest`类中,我们...

    Spring MVC RESTFUL接口实例和android测试客户端

    RESTful是Representational State Transfer的缩写,是一种网络应用程序的设计风格和开发方式,基于HTTP协议,以资源为中心,通过统一的URI(Uniform Resource Identifier)来定位资源,使用HTTP方法(GET、POST、PUT...

    获取Spring容器

    在这个类中,我们定义了一个静态方法`getBean`,通过传入Bean的名称,可以从Spring容器中获取对应的Bean实例。 ##### 3. 通过公共方法获取其他对象 一旦`ApplicationContextUtil`被配置并初始化,就可以通过调用其...

    19 Spring MVC应用拓展Resource应用于文件下载慕课专栏1

    Resource接口是Spring提供的,用于抽象资源的访问,它可以是文件、URL、类路径下的资源等。通过Resource的实现类,如FileSystemResource或ClassPathResource,我们可以轻松地获取到文件的InputStream。 例如,对于...

    Spring实战之ServletContextResource访问资源文件示例

    首先,`ServletContextResource` 是 `Resource` 接口的一个实现,这个接口是Spring中用于表示资源的核心抽象。通过`ServletContextResource`,我们可以获取到Web应用上下文中的任何资源,例如在`WEB-INF`目录下的...

    Spring源码分析.pdf

    在 Spring 中,IOC 容器的实现基于 BeanFactory 接口,该接口定义了 IOC 容器的基本行为,包括获取 Bean 实例、判断 Bean 是否单例、获取 Bean 的别名等。 BeanFactory 接口的实现有多种,Spring 提供了多种 IOC ...

    Spring实战之使用Resource作为属性操作示例

    Spring框架中提供了Resource接口,用于抽象表示资源,可以是一个文件、一个URL或一个输入流等。在Spring中,我们可以使用Resource作为Bean的属性,从而实现对资源的访问和操作。 Resource的概念 在Spring中,...

    详解Spring关于@Resource注入为null解决办法

    Spring 框架中,@Resource 注解是一种常用的依赖注入方式,用于将对象注入到应用程序中。但是,在实际开发中,经常会遇到 @Resource 注解的对象为 null 的问题。本文将详细介绍 Spring 中 @Resource 注解解决 null ...

    Spring源码解析.pdf

    - **功能**:`Resource`接口代表了一个可以访问的资源,它可以是文件系统上的文件、URL资源或其他任何形式的资源。 - **应用场景**:`XmlBeanFactory`使用`Resource`来封装XML配置文件,便于读取和管理。 #### 四、...

    springRestful小例子

    例如,一个简单的用户查询接口可能会这样定义: ```java @RestController public class UserController { @GetMapping("/users") public List<User> getUsers() { // 从数据库获取用户列表并返回 } } ``` 在...

    Spring bean 管理

    - 使用静态工厂方法实例化:这种方式通过调用一个静态方法来获取Bean实例,适用于简单工厂模式。 - 使用实例工厂方法实例化:类似于静态工厂方法,但工厂方法是非静态的,需要先创建工厂类的实例后再调用。 - ...

    spring源码包.zip

    `spring-core`模块包含了Spring的基本工具类和基础设施,如Resource接口、ConversionService接口等,为整个Spring框架提供了基础服务。此外,它还引入了ResourceLoader,用于加载各种类型的资源,如文件、URL、...

    spring3.x的读书笔记-2

    在Spring框架中,Resource接口是核心组件之一,用于表示应用程序中的资源,比如文件、网络连接、输入/输出流等。在上述代码示例中,我们可以看到两种Resource的实例化方式:FileSystemResource和ClassPathResource。...

    Spring使用与实现总结.pdf

    **Resource接口** - **Resource**是Spring中对外部资源的抽象,主要用于文件的抽象,尤其是XML文件,其中通常包含了Spring用户的Bean定义。 - **Resource**接口提供了一套比Java标准的URL访问机制更为灵活和强大的...

    Spring+Ibatis集成开发实例.doc

    这里我们有一个名为`IDAO`的接口,包含获取列表、按名称或ID获取、保存、删除和更新操作: ```java package ch10.SpringAndIbatis; import java.util.List; public interface IDAO { public List<Ibatis> ...

Global site tag (gtag.js) - Google Analytics