Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java spring配置文件中excel的相对路径_Java_Spring_Excel_Web - Fatal编程技术网

Java spring配置文件中excel的相对路径

Java spring配置文件中excel的相对路径,java,spring,excel,web,Java,Spring,Excel,Web,我已经编写了一个程序来获取FireSQL查询到Excel并获取数据。为此,我使用了JDBCODBC连接,如下所示 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); c = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Excel Driver (*.xls)};DBQ=" +

我已经编写了一个程序来获取FireSQL查询到Excel并获取数据。为此,我使用了JDBCODBC连接,如下所示

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
c = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Excel Driver (*.xls)};DBQ="                            
                            + request.getSession().getServletContext().getRealPath("WEB-INF")+"\\TCCAddress.xls");
stmnt = c.createStatement();
String query = "select * from [TCC_001$]";
ResultSet rs = stmnt.executeQuery(query);
但是我使用的是spring,我想使用spring数据源创建一个连接。我在下面试过,但不起作用

<bean id="excelDB"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="sun.jdbc.odbc.JdbcOdbcDriver" />
        <property name="url">
            <value>jdbc:odbc:Driver={Microsoft Excel Driver (*.xls)};DBQ=classpath:/WEB-INF/TCCAddress.xls</value>
        </property>
</bean>
如果我使用

<property name="url">
                <value>jdbc:odbc:Driver={Microsoft Excel Driver (*.xls)};DBQ=D:/TCCAddress.xls</value>
</property>

jdbc:odbc:Driver={Microsoft Excel驱动程序(*.xls)};DBQ=D:/tccdaddress.xls
它工作正常,我可以连接到excel并获取数据

如何为tccdaddress.xls


注意我不想使用像“D:/tccdAddress.xls”这样的绝对路径

看到你的问题,我想你只需要xls文件的相对路径。一旦你得到了这个路径,你可以做更多的事情

让我试着解释一下如何获得任何资源的相对路径

假设您已将xls或任何类型的资源放在“/WEB-INF/classes/”中。您可以通过查看war文件来检查这一点

现在,在部署之后,您需要该资源的路径(这里的资源是xls文件),然后您可以执行以下操作

您可以通过这行代码获得路径

String path = this.getClass().getResource("/WEB-INF/classes/xyz.xls").getPath();
在这里,您在war文件中的资源位置永远不会改变,而且您也会知道它。因此,请在getResource()方法中传递它

这里您希望更改spring配置运行时,以便在您的问题中可以使用BeanPostProcessor接口。它可以用于为多个bean执行自定义实例化逻辑,而其他bean是基于每个bean定义的

您可以找到下面提到的两种方法

  • 后处理后初始化
  • 初始化前的后处理
  • 请阅读Spring社区和应用程序的文档


    您可以通过它实现您的目标。

    我可以使用request.getSession().getServletContext().getRealPath(“WEB-INF”)获取路径。我的问题是我想在spring配置文件中配置路径
    String path = this.getClass().getResource("/WEB-INF/classes/xyz.xls").getPath();