2016-09-21 9 views
0

ローカルで実行されるSpringブートアプリケーションでは、ユーザーはオペレーティングシステムからWebページに写真をドラッグして表示できる必要があります。ファイルへのOS上のパスをして、起動時に設定することができます。Springブート - アプリケーションを再起動しないでResourceHandlerRegistryを更新

@SpringBootApplication 
public class UploaderApplication extends WebMvcConfigurerAdapter { 

private String workingDir = "/Users/example/Desktop/"; 

public static void main(String[] args) { 
    SpringApplication.run(UploaderApplication.class, args); 
} 

@Override 
public void addResourceHandlers(ResourceHandlerRegistry registry) { 
    registry.addResourceHandler("/dir/**") 
      .addResourceLocations("file://" + workingDir) 
      .setCachePeriod(0); 
    System.out.println(workingDir); 
} 

しかし、私は絶対以来、ユーザーにファイルが実行されているアプリの後から来ているディレクトリを更新する機能を提供する必要がありますアプリケーションが起動したときにパスが常に判明するとは限りません。ユーザーが入力した新しい作業ディレクトリのパスを使用してブラウザからGETリクエストを送信した場合、どのようにレジストリを更新できますか?

ありがとうございます。

+0

パスにコンフィグレーションBeanを導入しないのはなぜですか? –

答えて

0

私はこれを解決することを決めました。ユーザーは、アップロードするディレクトリを使用してデータベースを更新するフォームに記入することができます。アプリケーションがロードされると、ディレクトリのリストが取得され、htmlで使用できる識別子が作成されます。

@SpringBootApplication 
public class boxApplication extends WebMvcConfigurerAdapter { 

@Autowired private TemplateRepository templateRepository; 

public static void main(String[] args) { 
    SpringApplication.run(boxApplication.class, args); 
} 

@Override 
public void addResourceHandlers(ResourceHandlerRegistry registry) { 

    Template template = templateRepository.findById(1); 

    for (UploadDirectory local: template.getLocalDirectories()){ 

     registry.addResourceHandler("/dir" + local.getId() + "/**") 
       .addResourceLocations("file://" + local.getDirectory()) 
       .setCachePeriod(0); 
    } 
} 
} 
関連する問題