Java java지도 시간 Java의 정적 리소스 로딩 예제에 대한 자세한 설명

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

May 10, 2017 am 10:28 AM
boot spring 정적 리소스

이 글에서는 주로 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으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Windows ISO 파일이 너무 큼 BootCamp 오류 [수정됨] Windows ISO 파일이 너무 큼 BootCamp 오류 [수정됨] Feb 19, 2024 pm 12:30 PM

Windows ISO 파일이 너무 큼 BootCamp 오류 [수정됨]

Spring Boot가 OpenAI를 만났을 때 새로운 프로그래밍 패러다임 Spring Boot가 OpenAI를 만났을 때 새로운 프로그래밍 패러다임 Feb 01, 2024 pm 09:18 PM

Spring Boot가 OpenAI를 만났을 때 새로운 프로그래밍 패러다임

Spring 프로그래밍 방식 트랜잭션의 구현 방법은 무엇입니까? Spring 프로그래밍 방식 트랜잭션의 구현 방법은 무엇입니까? Jan 08, 2024 am 10:23 AM

Spring 프로그래밍 방식 트랜잭션의 구현 방법은 무엇입니까?

Spring Boot 및 Spring AI를 사용하여 생성 인공 지능 애플리케이션 구축 Spring Boot 및 Spring AI를 사용하여 생성 인공 지능 애플리케이션 구축 Apr 28, 2024 am 11:46 AM

Spring Boot 및 Spring AI를 사용하여 생성 인공 지능 애플리케이션 구축

Spring Boot와 Spring Cloud의 차이점과 연결 Spring Boot와 Spring Cloud의 차이점과 연결 Jun 22, 2023 pm 06:25 PM

Spring Boot와 Spring Cloud의 차이점과 연결

Spring에서 트랜잭션 격리 수준을 설정하는 방법 Spring에서 트랜잭션 격리 수준을 설정하는 방법 Jan 26, 2024 pm 05:38 PM

Spring에서 트랜잭션 격리 수준을 설정하는 방법

Surface Duo(128GB)(소프트웨어 포함)에 Windows 11을 설치하는 방법 및 자습서 Surface Duo(128GB)(소프트웨어 포함)에 Windows 11을 설치하는 방법 및 자습서 Jun 03, 2023 pm 12:00 PM

Surface Duo(128GB)(소프트웨어 포함)에 Windows 11을 설치하는 방법 및 자습서

Spring 프로젝트에서 JUnit 단위 테스트 프레임워크 적용 Spring 프로젝트에서 JUnit 단위 테스트 프레임워크 적용 Apr 18, 2024 pm 04:54 PM

Spring 프로젝트에서 JUnit 단위 테스트 프레임워크 적용

See all articles