Spring boot 2.xファイルパスマッピング問題の概要
5277 ワード
実行可能なjava jarパッケージを実行するとき、私たちはjarの中の内容を変えることはできません.そのため、ファイルのアップロードパスは私たちが考えなければならない問題になります.私たちは直接このjarパッケージにファイルを書くことはできません.では、jarパッケージの外に書くしかありませんが、jarパッケージの外に書くとき、どのように内蔵のtomcatでファイルをダウンロードしますか.Springbootはjarパケットの外部パスをjarにマッピングする方法を提供します.次に、どのように実現するかを見てみましょう.1、springboot 2.0以前:WebMvcConfigurerAdapterを継承することでファイルパスのマッピングを実現しました.
2、WebMvcConfigurerAdapterの内部実装WebMvcConfigurerAdapterはWebMvcConfigurerインタフェースのすべての空の方法を実現した.
3、WebMvcConfigurerAdapterはどうして時代遅れになったのですか.これは、Javaのバージョンが更新されたため、Java 8ではdefaultキーワードを使用してインタフェースにデフォルトのメソッドを追加することができ、Springはアップグレード中にJava 8の新しい特性を同期的にサポートしているからです.4、WebMvcConfigurer新しく選択したインタフェースWebMvcConfigurerを見てみましょう.WebMvcConfigurerはデフォルトで空の実装がある以上、WebMvcConfigurerインタフェースを直接実現すればいいです.
5、更新後のコードは以下の通りです.
皆さんが直接使いたいspring bootバージョンが2以上なら、5点目をプロジェクトにコピーすればいいです.最後に広範なプログラム猿1024の楽しみを祈ります.髪の毛が長くて、バグが少ない.
もし文章があなたに役に立つならば、少し称賛して関心を持つことを覚えておいてください~みんなが私の公衆番号に関心を持つことを歓迎して、毎日技術は文章を送ってみんなの学習の参考に供します.
@Configuration
public class FileConfig extends WebMvcConfigurerAdapter {
private String uploadPath = E://file/;
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/file/**").addResourceLocations("file:"+uploadPath);
super.addResourceHandlers(registry);
}
}
2、WebMvcConfigurerAdapterの内部実装WebMvcConfigurerAdapterはWebMvcConfigurerインタフェースのすべての空の方法を実現した.
@Deprecated
public abstract class WebMvcConfigurerAdapter implements WebMvcConfigurer {
public WebMvcConfigurerAdapter() {}
public void configurePathMatch(PathMatchConfigurer configurer) {}
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {}
public void configureAsyncSupport(AsyncSupportConfigurer configurer) {}
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {}
public void addFormatters(FormatterRegistry registry) {}
public void addInterceptors(InterceptorRegistry registry) {}
public void addResourceHandlers(ResourceHandlerRegistry registry) {}
public void addCorsMappings(CorsRegistry registry) {}
public void addViewControllers(ViewControllerRegistry registry) {}
public void configureViewResolvers(ViewResolverRegistry registry) {}
public void addArgumentResolvers(List argumentResolvers) {}
public void addReturnValueHandlers(List returnValueHandlers) {}
public void configureMessageConverters(List> converters) {}
public void extendMessageConverters(List> converters) {}
public void configureHandlerExceptionResolvers(List exceptionResolvers) {}
public void extendHandlerExceptionResolvers(List exceptionResolvers) {}
@Nullable
public Validator getValidator() {
return null;
}
@Nullable
public MessageCodesResolver getMessageCodesResolver() {
return null;
}
}
3、WebMvcConfigurerAdapterはどうして時代遅れになったのですか.これは、Javaのバージョンが更新されたため、Java 8ではdefaultキーワードを使用してインタフェースにデフォルトのメソッドを追加することができ、Springはアップグレード中にJava 8の新しい特性を同期的にサポートしているからです.4、WebMvcConfigurer新しく選択したインタフェースWebMvcConfigurerを見てみましょう.WebMvcConfigurerはデフォルトで空の実装がある以上、WebMvcConfigurerインタフェースを直接実現すればいいです.
public interface WebMvcConfigurer {
default void configurePathMatch(PathMatchConfigurer configurer) {}
default void configureContentNegotiation(ContentNegotiationConfigurer configurer) {}
default void configureAsyncSupport(AsyncSupportConfigurer configurer) {}
default void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {}
default void addFormatters(FormatterRegistry registry) {}
default void addInterceptors(InterceptorRegistry registry) {}
default void addResourceHandlers(ResourceHandlerRegistry registry) {}
default void addCorsMappings(CorsRegistry registry) {}
default void addViewControllers(ViewControllerRegistry registry) {}
default void configureViewResolvers(ViewResolverRegistry registry) {}
default void addArgumentResolvers(List resolvers) {}
default void addReturnValueHandlers(List handlers) {}
default void configureMessageConverters(List> converters) {}
default void extendMessageConverters(List> converters) {}
default void configureHandlerExceptionResolvers(List resolvers) {}
default void extendHandlerExceptionResolvers(List resolvers) {}
@Nullable
default Validator getValidator() {
return null;
}
@Nullable
default MessageCodesResolver getMessageCodesResolver() {
return null;
}
}
5、更新後のコードは以下の通りです.
@Configuration
public class FileConfig implements WebMvcConfigurer {
private String uploadPath = E://file/;
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/file/**").addResourceLocations("file:"+uploadPath);
super.addResourceHandlers(registry);
}
}
皆さんが直接使いたいspring bootバージョンが2以上なら、5点目をプロジェクトにコピーすればいいです.最後に広範なプログラム猿1024の楽しみを祈ります.髪の毛が長くて、バグが少ない.
もし文章があなたに役に立つならば、少し称賛して関心を持つことを覚えておいてください~みんなが私の公衆番号に関心を持つことを歓迎して、毎日技術は文章を送ってみんなの学習の参考に供します.