Java Spring cloud配置-共享文件或其位置
我有两份申请:Java Spring cloud配置-共享文件或其位置,java,spring-cloud,spring-cloud-stream,spring-cloud-config,Java,Spring Cloud,Spring Cloud Stream,Spring Cloud Config,我有两份申请: 一个sprig引导配置服务器 另一个是spring引导配置客户端 客户端必须使用名为certificate.json的文件 我想把这个文件存储在服务器端,这样另一个微程序和需要它的客户端程序就可以从服务器端检索它 我试试看: 将文件certificate.json复制到classpath:/config 将此行添加到application.properties: certificate.location:classpath:config/certificate.json 通
- 一个sprig引导配置服务器
- 另一个是spring引导配置客户端
- 将文件certificate.json复制到classpath:/config
- 将此行添加到application.properties: certificate.location:classpath:config/certificate.json
- 通过以下方式调用客户端程序中的值: @值(“${certificate.location}”) 私有字符串证书定位
提前谢谢。类路径只是URL的协议部分。您可以使用
文件
或任何其他受支持的协议。例如,file://home/user/project/scr/main/resources/config/certificate.json
类路径只是URL的协议部分。您可以使用文件
或任何其他受支持的协议。例如,file://home/user/project/scr/main/resources/config/certificate.json
我愿意
这样,您的位置已经是一个可以加载、调用的位置。等等。由于您的值的前缀是classpath:
,因此您将拥有一个ClassPathResource实例,可以用于很多事情。
@Value("${certificate.location}") private Resource certificateLocation;
这样,您的位置已经是一个可以加载、调用的位置。等等。由于您的值的前缀是
classpath:
,因此您将拥有一个ClassPathResource实例,可以用于很多事情。OP您需要创建一个web服务并返回certificate.json作为响应。然后,您可以通过向URI发送GET或POST请求来发送和接收数据,如。请参阅:
作为补充说明,您永远不应该将内部文件暴露在internet上,因为这是非常不安全的,会让您面临盗版和黑客攻击。OP您需要创建一个web服务并返回certificate.json作为响应。然后,您可以通过向URI发送GET或POST请求来发送和接收数据,如。请参阅:
顺便说一句,你不应该将你的内部文件暴露在互联网上,因为这是非常不安全的,会让你面临盗版和黑客攻击。在这种情况下,我会做的是
@SpringBootApplication public class DemoStaticresourceApplication extends WebMvcConfigurerAdapter {
public static void main(String[] args) {
SpringApplication.run(DemoStaticresourceApplication.class, args);
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/files/**").addResourceLocations("file:/fileFolder/")
.setCachePeriod(0);
}
}
现在,只有使用/files/path调用此文件夹中添加的每个文件时,才会提供服务。在这种情况下,我会做的是
@SpringBootApplication public class DemoStaticresourceApplication extends WebMvcConfigurerAdapter {
public static void main(String[] args) {
SpringApplication.run(DemoStaticresourceApplication.class, args);
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/files/**").addResourceLocations("file:/fileFolder/")
.setCachePeriod(0);
}
}
现在,只有使用/files/path调用此文件夹中添加的每个文件时,才会提供服务。是的,但我不知道服务器项目的绝对路径!而且,客户端和服务器应用程序可能位于不同的计算机上,因此客户端看不到file://Have 您尝试了Spring Integration SFTP流式入站通道适配器吗?OP想知道他从类路径中指定的文件的绝对位置,而你建议“spring integration SFTP streaming inbound channel adapter”?是的,但我不知道服务器项目的绝对路径!而且,客户端和服务器应用程序可能位于不同的计算机上,因此客户端看不到file://Have 您尝试了Spring Integration SFTP流式入站通道适配器吗?OP想知道他从类路径中指定的文件的绝对位置,而您建议使用“spring integration SFTP streaming inbound channel adapter”?您是否想过公开REST端点以将该文件作为资源返回,以便另一方可以使用
新的UrlResource(“http://my.server/certificate.json")
?好主意@Artem Bilan!我试试看!您是否考虑过公开REST端点以将该文件作为资源返回,以便另一方可以使用newUrlResource(“http://my.server/certificate.json“
?好主意@Artem Bilan!我试试看!试试这个也试试这个