【发布时间】:2015-10-30 14:31:28
【问题描述】:
就像在 tomcat 中部署并且可以访问和修改前端而无需重新启动整个 tomcat 服务器一样,是否可以找到这些文件的位置并为使用 spring 创建的应用程序修改它们(无需再次编译)开机?我只有jar,但我知道应该是tomcat部署文件的地方,知道在哪里吗?
谢谢
【问题讨论】:
标签: java spring spring-boot
就像在 tomcat 中部署并且可以访问和修改前端而无需重新启动整个 tomcat 服务器一样,是否可以找到这些文件的位置并为使用 spring 创建的应用程序修改它们(无需再次编译)开机?我只有jar,但我知道应该是tomcat部署文件的地方,知道在哪里吗?
谢谢
【问题讨论】:
标签: java spring spring-boot
您可以将您的应用配置为从文件系统的某个文件夹中提供静态文件:
@Configuration
public class StaticResourceConfiguration extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/files/**")
.addResourceLocations("file:/opt/files/");
}
}
对于 Windows 用户,路径为: “file:///C:/MyDocs”
【讨论】:
您可以在 java 运行时中获取特定的当前执行路径,然后从那里开始。了解标准 WAR 或 EAR 结构将有助于检查这一点
Get the location of my web application context
遍历这个Directory Structure of EAR/WAR/JAR中的目录结构
问题不是修改而是加载修改后的路径/文件。有一个术语叫热部署。你正在让它变得更热哈哈!每当您更改特定文件时,应用程序服务器都需要重新加载特定的 WAR 或 EAR(如果更改的文件是类文件或 java 文件)。通常,在应用程序运行时所做的 JSP 和 HTML 文件更改在重新加载时可用。
如果特定文件在 JAR 中,您可能需要重新编译 jar 并将其重新部署/重新加载到您的应用程序中。这可能会有所帮助Loading jar at runtime/dynamically
【讨论】: