Spring boot 패키지 jar 후 정적 자원 접근

7777 단어 Springboot
Spring boot 패키지 jar 후 정적 자원 접근
배경: Spring boot 를 jar 패키지 로 포장 한 후 정적 자원 에 접근 하지 못 합 니 다.
우선 spring boot 는 기본 폴 더 설정 이 있 고 정적 자원 을 스스로 식별 할 수 있 습 니 다. 다음은 spring boot 의 기본 정적 폴 더 지정 입 니 다.
org.springframework.boot.autoconfigure.web.ResourceProperties
private static final String[] CLASSPATH_RESOURCE_LOCATIONS = {"classpath:/META-INF/resources/", 
"classpath:/resources/","classpath:/static/", "classpath:/public/" };

pom. xml 는 spring - boot - maven - plugin 의 기본 포장 방식 을 사용 합 니 다. "classpath: / static /" 는 이미 되 었 지만 안 됩 니 다.
구체 적 인 심리 과정 은 쓰 지 않 고 내 환경 에서 해결 하 는 방법 을 직접 말 하 다.
WebMvcConfigurer 설정 수정, 덮어 쓰기 addResource Handlers
public class WebMvcConfig implements WebMvcConfigurer {
	@Override
	public void addInterceptors(InterceptorRegistry registry) {
		...
	}

	@Override
	public void addResourceHandlers(ResourceHandlerRegistry registry) {
		//       ,           !
		//                 (        ,controller      *.*   ),           (file        ,        )
		registry.addResourceHandler("**/*.*").addResourceLocations("classpath:/resources/", "classpath:/static/",
				"classpath:/public/", "file:./static-extend/");
	}
}

차단 기 는 정적 자원 을 제거 하 는 데 주의해 야 합 니 다. 상기 방식 은 jar 패키지 도 가능 하고 IDE 내 에서 도 실행 할 수 있 습 니 다. 반대로 'classpath: / static /' 만 있 으 면 IDE 가 무릎 을 꿇 습 니 다.
POM. XML 은 기본 값 을 사용 하면 됩 니 다. (즉, static, templates 폴 더 는 기본적으로 BOOT - INF / class 아래 에 두 면 됩 니 다)
	
        ${project.artifactId}
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    

참고 로 thymeleaf 가 구 덩이 를 밟 은 곳.
뒤에 반 사 를 꼭 붙 여야 돼!하 나 는 거꾸로!!하 나 는 거꾸로!!그리고 코드 안에 return 이 있 을 때 앞 에 서 는 반드시 역 사 를 제거 해 야 합 니 다!거꾸로 빼!!거꾸로 빼!!!
spring:
  thymeleaf:
    prefix: classpath:/templates/
@RequestMapping("/demo")
@Controller
public class DemoController {

	@RequestMapping("/index")
	@ResponseBody
	public Object index() {
		return new ResultModel();
	}

	@RequestMapping("/error")
	public ModelAndView error(){
		ModelAndView modelAndView = new ModelAndView("collect/error");
        modelAndView.addObject("error", "    ");
        return modelAndView;
	}

	@RequestMapping("/finish")
	public String finish() {
		return "collect/finish";
	}
}

위 설정 을 완료 하면 jar, IDE 가 완벽 하 게 실 행 될 수 있 습 니 다. 또한 jar 패키지 의 경로 에서 static - extend 폴 더 에서 정적 자원 을 편리 하 게 저장 할 수 있 습 니 다. 안전성 은 여러분 의 요구 에 달 려 있 습 니 다. 이것 은 최종 적 으로 spring boot 에 의 해 작 동 됩 니 다.
참고 문헌
  • https://www.cnblogs.com/java-synchronized/p/7091723.html
  • 좋은 웹페이지 즐겨찾기