Разница между проектом SpringBoot в jar и war

Spring Boot
  • SpringBoot по умолчанию поддерживает множество шаблонизаторов, но JSP можно использовать только в War, и в то же времяmvc.view.prifix/suffixОн должен быть активно настроен и предоставлен, и должен быть импортирован сервлет рендеринга JSP по умолчанию:"org.apache.jasper.servlet.JspServlet", то есть добавить зависимости:
       <dependency>
   		<groupId>org.apache.tomcat.embed</groupId>
   		<artifactId>tomcat-embed-jasper</artifactId>
   		<scope>provided</scope>
   	</dependency>
  • И Jar, и War могут использовать вложенные контейнеры.java -jarработать независимо
  • Но во внешний контейнер можно развернуть только WAR, и WAR должен содержать:"src/main/webapp/WEB-INF/web.xml"
  • Механизм шаблонов JSP в SpringBoot имеет ограничения на использование:
  • jsp нельзя использовать в банке
  • Контейнер Udertow не поддерживает Jsp
  • индивидуальныеerror.jspСтраницы ошибок не переопределяют значения по умолчаниюerror handling view, если вы хотите настроить страницу ошибки, попробуйте другой механизм шаблоновCustom error pages
  • Если вы упаковываете проект в банку, не используйтеsrc/main/webappкаталог, хотя этот каталог также является общедоступным стандартом, он действителен только во время войны, потому что инструмент сборки, который создает банку, автоматически игнорирует этот каталог

Do not use the src/main/webapp directory if your application is packaged as a jar. Although this directory is a common standard, it works only with war packaging, and it is silently ignored by most build tools if you generate a jar.

  • SpringBoot欢迎页Также поддерживает静态资源и模板引擎, если нет в проекте" "、"/"изHandling, то он сначала проверит, существует ли он в расположении статического ресурсаindex.html, иначе будет просмотреноindex模板,если都不存在буду использовать默认欢迎页

Spring Boot supports both static and templated welcome pages. It first looks for an index.html file in the configured static content locations. If one is not found, it then looks for an index template. If either is found, it is automatically used as the welcome page of the application.

  • Spring5.+нейтральныйSpringMVCкасатьсяфункциональныйSpringWebFluxне полностью зависит отServlet API, поэтому его нельзя упаковать какwarне использоватьsrc/main/webappсодержание

Spring WebFlux applications do not strictly depend on the Servlet API, so they cannot be deployed as war files and do not use the src/main/webappdirectory.

  • Пользователи могут напрямую обращатьсяsrc/main/webappСтатические ресурсы, но к ним нет прямого доступаsrc/main/resourcesСтатические ресурсы в середине, но весна обеспечиваетResourceHttpRequestHandlerнастроитьsrc/main/resources(classpath)в указанном каталоге доступа
  • в МВКInterceptorможно только заблокироватьHandlingиsrc/main/webappстатические ресурсы в , даsrc/main/resourcesСтатические ресурсы в середине недействительны
  • По умолчанию у пользователей нетsrc/main/webapp/WEB-INFпрямой доступ, но можно получить доступ через программуforward,redirectдостигать间接В целях доступа файлы ресурсов, которым требуются разрешения на управление, обычно помещаются в военный проект.WEB-INFсередина
  • Также см:Spring Project Access Src/Main/Ресурсы Различия для статических ресурсов в SRC/Main/WebApp