当前位置: 首页 > 面试题库 >

在类路径中读取文件

傅博瀚
2023-03-14
问题内容

这是我想做的,我想知道是否有任何Spring类可以帮助实现。对于这个特定的问题,我不必使用spring,我只是将其与其他所有东西一起实现。

在我的DAO层中,我想外部化我的sql文件,也就是每个文件1个sql。我想读取并缓存sql语句,甚至可能作为spring
bean单例。但是在我最初的挣扎中,我只是在类路径中加载一个sql文件时遇到问题…

春天有什么可以帮助您的吗?我已经阅读过文档,但没有任何内容对我有帮助。

这是我想要的..但​​是我无法识别文件或类路径…不确定在applicationContext中是否需要定义某些内容?

这里有一些似乎无效的尝试……既有春天的味道,也只有java的味道。

reader = new BufferedReader(new InputStreamReader(new ClassPathResource("com.company.app.dao.sql.SqlQueryFile.sql").getInputStream())

reader = new BufferedReader(new InputStreamReader(ClassLoader.getSystemResourceAsStream("com.company.app.dao.sql.SqlQueryFile.sql")));

有什么想法吗?


问题答案:

假设您使用Spring作为依赖项注入框架,请尝试让Spring注入它。

在您的课堂上,执行以下操作:

public void setSqlResource(Resource sqlResource) {
    this.sqlResource = sqlResource;
}

然后在您的应用程序上下文文件的bean定义中,设置一个属性:

<bean id="someBean" class="...">
    <property name="sqlResource" value="classpath:com/somecompany/sql/sql.txt" />
</bean>

而且Spring应该足够聪明,可以从类路径中加载文件并将其作为资源提供给bean。

您还可以查看PropertyPlaceholderConfigurer,并将所有SQL存储在属性文件中,然后仅在需要时分别注入每个SQL。有很多选择。



 类似资料:
  • 问题内容: 我的程序需要读取一些文本配置文件。我当前的代码是: 当我在eclipse中本地运行它时,此方法有效,尽管我确实必须进行破解以处理路径名中的空间。配置文件与上述方法位于同一软件包中。但是,当我将应用程序导出为jar时,出现了问题。该jar位于共享的映射网络驱动器Z:上。当我从命令行运行应用程序时,出现此错误: java.io.FileNotFoundException:文件:\ Z:\

  • 问题内容: 我正在尝试读取在CLASSPATH系统变量中设置的文本文件。不是用户变量。 我正在尝试将输入流传输到文件,如下所示: 将文件()的目录放在CLASSPATH中,然后尝试以下操作: 将文件()的完整路径放在CLASSPATH中,然后尝试上述3行代码中的相同路径。 但是不幸的是,它们都没有起作用,我一直都在进入InputStream 。 问题答案: 在类路径上的目录中,从同一类加载器加载的

  • 是否可以传入文件路径或从csv中的其他文件读取?我的测试设置是这样的。 测试仪测试 CSV数据配置 我想在csv项目列和jmeter测试中包含一个文件,它将读取和发布json项目。

  • 问题内容: 给定Python中的类C,如何确定该类在哪个文件中定义?我需要可以从类C或从关闭C的实例工作的东西。 我这样做的原因是因为我通常不喜欢将属于同一文件的文件放在同一文件夹中。我想创建一个使用Django模板将其自身呈现为HTML的类。基本实现应根据定义类的文件名来推断模板的文件名。 假设我在文件“ base / artifacts.py”中放置了一个LocationArtifact类,那

  • 我有一个带有图形编辑器的项目(如GMF技术),我需要读取一个文件。Jar库位于项目的类路径上。 VectorSync_1.0.0.201403121100.jar具有如下结构: 矢量同步: 图标/矢量同步。gif 这个导入的项目的类路径。Jar文件是: 我使用此方法尝试访问. xml文件: 但使用的方法始终返回null。 你能帮我解决这个问题吗 谢谢

  • 我只想从文件的完整路径中获取文件夹路径。 例如,我希望只得到(不包括)。 我曾经尝试过这样的事情: 但它给了我这样一个结果: 这不是我需要的结果(是)。 关于如何获取文件路径有什么想法吗?