spring boot 에서 war 패키지 로 포 장 된 페이지 를 어떻게 저장 합 니까?
평소에 spring mvc 를 사용 하여 war 가방 으로 포장 하여 tomcat 에 발표 하 는데 어떻게 하면 spring boot 의 war 나 jar 가방 으로 빠르게 전환 할 수 있 습 니까?
전통 적 인 war 가방 스타일 부터 볼 까요?
1.전통 적 인 spring MVC 형식의 war 패키지
웹 앱/resouces 파일 은 css/js/html 등 정적 파일 을 저장 하고 WEB-INF 는 jsp 동적 파일 을 저장 하 는 것 을 볼 수 있 습 니 다.
대응 하 는 프로필
@EnableWebMvc //mvc:annotation-driven
@Configuration
@ComponentScan({ "com.xxx.web" })
public class SpringWebConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
}
@Bean
public InternalResourceViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/WEB-INF/views/jsp/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
}
xml 에 대응 하 는 설정 은 다음 과 같 습 니 다.
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd ">
<context:component-scan base-package="com.xxxx.web" />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/views/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
<mvc:resources mapping="/resources/**" location="/resources/" />
<mvc:annotation-driven />
</beans>
2.spring boot 형식의 jar 패키지jar 의 구조,spring 은 jsp 의 동적 파일 을 피하 고 Thymeleaf,FreeMarker 등 템 플 릿 엔진 을 사용 합 니 다.jsp 는 제한 이 많 기 때 문 입 니 다.
28.4.5 JSP Limitations
When running a Spring Boot application that uses an embedded servlet container (and is packaged as an executable archive), there are some limitations in the JSP support.
With Jetty and Tomcat, it should work if you use war packaging. An executable war will work when launched with java -jar, and will also be deployable to any standard container. JSPs are not supported when using an executable jar.
Undertow does not support JSPs.
Creating a custom error.jsp page does not override the default view for error handling. Custom error pages should be used instead.
3.spring boot 형식의 war 패키지
어떻게 전환 합 니까?
사실 위의 구 조 를 통 해 알 수 있 듯 이 spring boot 의 표준 규격 은 jsp 를 사용 하 는 것 을 권장 하지 않 습 니 다.Thymeleaf,FreeMarker 등 템 플 릿 엔진 을 사용 하 는 것 을 추천 합 니 다.그리고 모든 정적 파일 은 resources 아래 에 저장 되 어 코드 로 동적 코드 를 설정 할 수 있 습 니 다.
@Configuration
@EnableWebMvc
public class SpringConfig
{
@Bean
public InternalResourceViewResolver viewResolver()
{
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/view/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
}
정적 속성 설정
spring.mvc.static-path-pattern=/resources/**
정의 설정 에서 왔 습 니 다.정적 파일 을 동적 으로 사용 할 수도 있 습 니 다.
spring.resources.chain.strategy.content.enabled=true
spring.resources.chain.strategy.content.paths=/**
spring.resources.chain.strategy.fixed.enabled=true
spring.resources.chain.strategy.fixed.paths=/js/lib/
spring.resources.chain.strategy.fixed.version=v12
메모:centos 에서 tomcat 를 사용 할 때 컴 파일 된 jsp 파일,업로드 한 파일 등 기본 값 은 임시 디 렉 터 리 에 저 장 됩 니 다.If you choose to use Tomcat on centos, be aware that, by default, a temporary directory is used to store compiled JSPs, file uploads, and so on. This directory may be deleted by tmpwatch while your application is running, leading to failures. To avoid this behavior, you may want to customize your tmpwatch configuration such that tomcat.* directories are not deleted or configure server.tomcat.basedir such that embedded Tomcat uses a different location.
총결산
위 에서 말 한 것 은 소 편 이 소개 한 spring boot 를 war 가방 으로 포장 한 페이지 를 어떻게 저장 하 는 지 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.소 편 은 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
만약 당신 이 본문 이 당신 에 게 도움 이 된다 고 생각한다 면,전 재 를 환영 합 니 다.번 거 로 우 시 겠 지만 출처 를 밝 혀 주 십시오.감사합니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.