弹簧引导打包成战争包的页面如何存放

  

  

经常有朋友问我,平时都是使用spring mvc,打包成战争包发布到tomcat上,如何快速到切换到弹簧引导的战争或者jar包上吗?

  

先来看看传统的战争包样式是什么样子的?

  

<强>

  

春天引导打包成战争包的页面如何存放

  

  

可以看到webapp/资源文件存放css/js/html等静态文件,- inf存放jsp动态文件。

  

对应的配置文件

        @EnableWebMvc//mvc:注解驱动的   @ configuration   @ComponentScan com.xxx ({”。网络”})   公开课SpringWebConfig延伸WebMvcConfigurerAdapter {      @Override   公共空间addResourceHandlers (ResourceHandlerRegistry注册表){   registry.addResourceHandler(“/资源/* *”).addResourceLocations(“/资源/?;   }      @ bean   公共InternalResourceViewResolver viewResolver () {   InternalResourceViewResolver viewResolver=new InternalResourceViewResolver ();   viewResolver.setViewClass (JstlView.class);   viewResolver.setPrefix (“/web - inf/视图/jsp/?;   viewResolver.setSuffix (jsp);   返回viewResolver;   }      }      

  

对xml的应配置如下:

        & lt;豆类xmlns=" http://www.springframework.org/schema/beans "   xmlns:上下文=" 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”比;      & lt;上下文:component-scan基础包=" com.xxxx。网络”/比;      & lt; bean类=皁rg.springframework.web.servlet.view.InternalResourceViewResolver”比;   & lt;属性名=" viewClass " value=" https://www.yisu.com/zixun/org.springframework.web.servlet.view.JstlView "/比;   & lt;属性名="前缀" value=" https://www.yisu.com/WEB-INF/views/jsp/"/比;   & lt;属性名="后缀" value=" https://www.yisu.com/zixun/.jsp "/比;   & lt;/bean>      & lt; mvc:资源映射="/资源/* *”位置="/资源//比;      & lt; mvc:注解驱动/比;      & lt;/beans>      

  

  

jar的结构,春天尽量避免jsp的动态文件,而是使用如Thymeleaf, FreeMarker等模板引擎,因为jsp有很多限制。

  

春天引导打包成战争包的页面如何存放

  
  

28.4.5 JSP的局限性   

Spring运行时启动应用程序,使用嵌入式servlet容器(打包为一个可执行档案),有一些限制在JSP支持。

  

Jetty和Tomcat,它应该工作如果你使用战争包装。一个可执行的战争将在启动java jar时,并将可部署到任何标准容器。jsp使用一个可执行jar时不支持。

  

暗潮不支持jsp。

  

创建一个自定义的错误。jsp页面不覆盖默认的视图用于错误处理。应该使用自定义的错误页面。

     

  

  

春天引导打包成战争包的页面如何存放

  

  

  

其实,通过上面的结构,我们可以看的出,弹簧引导的标准规格还是不建议使用jsp的推荐使用Thymeleaf, FreeMarker等模板引擎,然后所有的静态文件同样存储在资源下面,可以使用代码配置动态代码

        @ configuration   @EnableWebMvc   公开课SpringConfig   {   @ bean   公共InternalResourceViewResolver viewResolver ()   {   InternalResourceViewResolver viewResolver=new InternalResourceViewResolver ();   viewResolver.setPrefix (“/web - inf/视图/?;   viewResolver.setSuffix (jsp);      返回viewResolver;   }   }      

  

或者静态属性配置

        spring.mvc.static-path-pattern=/资源/* *      

来自定义配置。

  

也可以使用静态文件动态化

        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

弹簧引导打包成战争包的页面如何存放