>  기사  >  Java  >  Java의 정적 리소스 로딩 예제에 대한 자세한 설명

Java의 정적 리소스 로딩 예제에 대한 자세한 설명

Y2J
Y2J원래의
2017-05-10 10:28:512433검색

이 글에서는 주로 spring boot의 정적 리소스 로딩 처리 방법을 소개하고 있으니 필요한 친구들은 참고하시면 됩니다.

1. spring boot 기본 리소스 처리

Spring Boot는 WebMvcAutoConfiguration에 구성된 다양한 속성을 사용하여 기본적으로 정적 리소스 처리 기능을 제공합니다.

Spring Boot에서 파일을 로드하는 기본 경로는 다음과 같습니다.

/META-INF/resources/
/resources/
/static/
/public/

물론 이 디렉토리 아래에서 스프링 부트 소스 코드의 Java 코드도 볼 수 있습니다.

private static final String[] CLASSPATH_RESOURCE_LOCATIONS = { "classpath:/META-INF/resources/", "classpath:/resources/",  "classpath:/static/", "classpath:/public/" };

위는 모두 정적 리소스의 매핑 경로입니다. 우선순위순서 :META-INF/resources > resources > static > public

모든 로컬 정적 리소스는 webapp이 아닌 클래스 경로에 구성됩니다.

Spring Boot에서 제공하는 Sping MVC가 요구 사항을 충족하지 않는 경우 구성 클래스(@Configuration으로 주석이 달린 클래스)와 @EnableWebMvc 주석을 통해 완전히 제어되는 MVC 구성을 구현할 수 있습니다.

물론 일반적인 상황에서는 Spring Boot의 자동 구성이 대부분의 요구 사항을 충족합니다. Spring Boot에서 제공하는 편리함을 유지하고 자신만의 추가 구성을 추가해야 하는 경우 @EnableWebMvc 주석을 사용하지 않고 구성 클래스를 정의하고 상속 WebMvcConfigurerAdapter를 사용할 수 있습니다.

@EnableWebMvc를 사용하면 공식 /static, /public, META-INF/resources, /resources 및 정적 리소스 저장을 위한 기타 디렉터리를 자동으로 포함합니다.

2. 사용자 정의 리소스 매핑

여기서 이 클래스의 메서드를 재정의하면 다음을 추가할 수 있습니다. 여기서는 일반적으로 사용되는 몇 가지를 소개하겠습니다.

사용자 지정 리소스 매핑 addResourceHandlers

예를 들어 정적 리소스 매핑 디렉터리를 사용자 지정하려면 addResourceHandlers 메서드만 다시 작성하면 됩니다.

@Configuration
public class SimpleWebAppConfigurer extends WebMvcConfigurerAdapter {
  @Override
  public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/myresource/**").addResourceLocations("classpath:/myresource/");
    super.addResourceHandlers(registry);
  }
}

addResourceHandler를 통해 매핑 경로를 추가한 후 addResourceLocations를 통해 경로를 지정합니다.

/myresource/*를 기본값과 동일한 /*로 변경하면 addResourceLocations를 여러 번 사용하여 디렉터리를 추가할 수 있습니다. 나중에 추가되었습니다.

3. 외부 리소스 사용

폴더에 대한 절대 경로(예: H:/images/)를 지정하려면, 그런 다음에만 addResourceLocations를 사용하여 지정해야 합니다.

// 可以直接使用addResourceLocations 指定磁盘绝对路径,同样可以配置多个位置,注意路径写法需要加上file:
registry.addResourceHandler("/myimgs/**").addResourceLocations("file:H:/myimgs/");

구성 파일을 통해 구성됩니다. 위의 코드를 사용하여 정적 리소스 매핑을 정의합니다. 실제로 Spring Boot는 애플리케이션에서 직접 구성할 수 있는 구성도 제공합니다. .properties(또는 .yml) 메서드.

구성 방법은 다음과 같습니다.

# 默认值为 /**
spring.mvc.static-path-pattern=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/
spring.resources.static-locations=这里设置要指向的路径,多个使用英文逗号隔开

spring.resources.static-locations를 사용하여 패턴이 가리키는 경로를 재정의하고 classpath: 및 file:을 지원합니다(이미 위에서 설명함)

spring.mvc.static-path-pattern은 하나만 정의할 수 있으며 현재 쉼표로 구분된 여러 메서드를 지원하지 않습니다.

[관련 추천]

1. Java 무료 동영상 튜토리얼

Java 주석 종합 분석

3. 알리바바 자바 개발 매뉴얼

위 내용은 Java의 정적 리소스 로딩 예제에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.