我想動態地添加一些資源(意味着在Jar應用程序運行時),但具有挑戰性的部分是:我無法在運行時更改Jar內容,所以我需要創建一些其他空間作爲資源目錄並嘗試從那裏獲取。 (這是最好的做法,如果沒有,那麼請提供解決方案?)添加文件系統目錄作爲資源目錄在SpringBoot應用程序
例子: 我的春天啓動應用程序的JAR駐留在文件系統位置:
/home/my_spring_project/target/myproject.jar
運行:java -jar /home/my_spring_project/target/myproject.jar
和我已經保持運行時上傳圖片資源
/home/my_spring_project/uploads/user1_image.jpg
但我不能夠使/home/my_spring_project/uploads
目錄資源目錄
這裏是我的Spring應用程序,在這裏我想指定單獨的資源目錄的代碼:
@Configuration
public class StaticResourceConfiguration extends WebMvcConfigurerAdapter
{
private static final String[] RESOURCE_LOCATIONS = { "classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/" };
private static final String UPLOAD_DIR = "/uploads"; //currently application is mapping to base_dir of project i.e. /home/my_spring_project
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry)
{
if (!registry.hasMappingForPattern("/**"))
{
registry.addResourceHandler("/**").addResourceLocations(RESOURCE_LOCATIONS);
}
registry.addResourceHandler("/uploads/**").addResourceLocations(UPLOAD_DIR);
}
}
我還需要spring應用程序選擇的bydefault資源目錄,因爲我將保留前端模塊。
我只是想添加一個目錄,除了JAR,我可以在運行時上傳任何文件。這樣我就不需要改變JAR包裝的內容。
由於提前
您可以嘗試映射上傳位置:「file:/// home/my_spring_project/uploads /」?你能確保運行你的應用程序的Unix用戶有權閱讀該文件夾嗎? –
是的它的工作,當我提供了目錄的絕對路徑 – virsha
但是如果我想提供相對路徑 – virsha