spring boot 에서 war 패키지 로 포 장 된 페이지 를 어떻게 저장 합 니까?

5426 단어 springbootwar싸다.
배경
평소에 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 가방 으로 포장 한 페이지 를 어떻게 저장 하 는 지 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.소 편 은 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
만약 당신 이 본문 이 당신 에 게 도움 이 된다 고 생각한다 면,전 재 를 환영 합 니 다.번 거 로 우 시 겠 지만 출처 를 밝 혀 주 십시오.감사합니다!

좋은 웹페이지 즐겨찾기