- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
更新:我仍然会将 Artem Bilan 的答案标记为正确,但我仍然觉得我需要向 future 的读者指出这一点。看来我误解了 @Value
注释的“默认值”的概念。我希望通过使用实现的功能
@Value("${someProp:defaultFilePath}")
private Resource resourcefilePath;
如果 application.properties 中定义的文件路径 someProp 抛出异常(即未找到文件),它将尝试使用 defaultFilePath(即上面的文件路径)。定义默认值的实际作用是,如果属性本身 (someProp) 在 application.properties 文件中不存在(未定义或注释掉),则会尝试使用默认值。
<小时/>我正在使用 Spring Integration Sftp 进行 SSH 文件传输。使用 Spring Boot 因此没有 xml 文件。在配置 DefaultSftpSessionFactory
对象之前,我定义了一个包含 .txt 文件的资源,该文件具有 sFtp 身份验证所需的私钥。
以前,我像这样使用FileSystemResource
:
Resource resource = new FileSystemResource("C:/absolute/path/to/my/private/key/privateKey.txt");
这个效果很好。然而,这个应用程序最终会被放到云环境中,这意味着这样的绝对路径将不再起作用。我尝试改用 ClassPathResource,但无论我如何尝试,它都不起作用。到目前为止,我已经尝试过以下方法:
Resource resource = new ClassPathResource("privateKey.txt");
Resource resource = new ClassPathResource("privateKey.txt", SomeClassInClassPath.class);
Resource resource = new ClassPathResource("com/my/package/name/privateKey.txt");
我的目录结构如下所示:
ProjectFolder -> src -> main -> java -> com -> my -> package -> name -> various java classes
privateKey.txt
-> resources -> etc...
还有更多内容,但这是它的简化版本。谁能帮我弄清楚如何让它识别我的 .txt 的路径?无论我如何尝试,我总是收到java.io.FileNotFoundException:无法打开类路径资源[资源],因为它不存在
。
编辑: war 结构:
ProjectFolder -> META-INF -> maven -> etc..
-> org -> springframework -> boot -> etc..
-> WEB-INF -> classes -> com
-> public
-> application.properties
-> privateKey.txt
最佳答案
您显示 src -> main ->
等,但这对于运行时并不重要。
如果您确实要在最终应用程序中包含该文件(jar?war?),请确保将该文件真正打包为最终应用程序的一部分。
并在此处分享该结构。
使用 Spring Java 和注释配置,您无需担心 ClassPathResource
对象。在适当的 @Configuration
中声明它就足够了:
@Value("com/my/package/name/privateKey.txt")
private Resource privateKey;
关于java - Spring ClassPathResource - 无法打开,因为它不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37198095/
springboot工具类中读取配置文件 1、创建配置文件(application.properties) ?
在我的应用程序中,我想使用文件夹中存在的资源 media/src/main/resources/testMediaExif 为了获得该路径,我使用了位于 media/src/main/java/com
这个问题已经有答案了: BeanFactory vs ApplicationContext (22 个回答) 已关闭 8 年前。 以下两条语句显然都是用于加载 xml 配置,但它们之间有什么区别? A
我正在 Spring 迈出第一步。在我的项目中,我需要使用 SOAP HTTPS Web 服务。我添加了JKSKeyManager用于测试配置 xml 和 ClassPathResource 的 be
我正在尝试检索类路径中的文件列表,但 Spring 返回的是 FileSystemResources 的 Resource[] 而不是 ClassPathResources。代码如下所示: PathM
更新:我仍然会将 Artem Bilan 的答案标记为正确,但我仍然觉得我需要向 future 的读者指出这一点。看来我误解了 @Value 注释的“默认值”的概念。我希望通过使用实现的功能 @Val
我的 Web 应用程序使用 Spring 4.3.5。我们需要从 jar 本身加载一个存储在我们的 JAR 类路径之一中的 Freemarker 模板。 让我尽量概括一下我的场景(稍后我会提供代码)
使用 Spring 引导。我正在尝试使用 Apache POI 库解析项目中本地存储的 Excel 文件。我的目录结构是这样的: 源代码 主要内容 java com.app Controller 型号
在我的 Spring Boot 1.5 应用程序中,我使用 ClassPathResource 读取应用程序 JAR 的静态文件: // ... import org.springframework.
我们在一个驱动器上有一个文件 (C:\megzs\realm.properties)。我们想加载此文件并使用 Spring 中可用的 ClassPathResource 读取内容。但是我们看到文件未找
ClassPathResource.getFile() 抛出 FileNotFoundException。这是代码片段: ClassPathResource emsInitResource =
我已经为以下问题苦苦挣扎了两天,但无法解决它。 我正在尝试在 Spring Boot Rest 应用程序中提供静态 pdf。它应该非常简单,但我就是无法让它工作。 首先,我只是将 pdf 放在资源文件
如何使用自定义 .properties 文件为不同的环境(生产、开发、暂存)配置 PropertySourcesPlaceholderConfigurer?在部署 spring 时抛出“无法解析字符串
我有一个奇怪的问题: 在 src/main/resources 我有一个“template.xlsx”文件。 如果我这样做: InputStream is = new ClassPathResourc
我在该位置有文件 --src --> main --> config --> application --> context --> reference
我正在尝试从 jar 文件加载 message.properties 文件,但它没有找到该文件(我已经尝试了几个小时)。 messages/mes
我正在将项目从基于 xml 的配置迁移到基于 java 的配置。 我能够成功定义除一个之外的所有 bean。XMLViewResolver我们使用的是 JasperReports,因此所有 jrxml
我需要能够从 Spring Boot 模板生成 PDF。为此,我使用 PDF 渲染库 (FlyingSaucer),它基本上可以正确完成工作。然而,存在一个问题:当页面上有“href”标签时,当 PD
我拥有所有必需的 JAR。尽管面临以下问题: java.lang.ClassCastException: org.drools.io.impl.ClassPathResource cannot be
我是一名优秀的程序员,十分优秀!