SpringBoot MVC快速开发:

主要针对Spring MVC进行的封装应用。

基于Spring MVC开发Rest服务

rest请求–》Spring MVC–》返回JSON结果

/news/xx GET —> Spring MVC –> 返回某个新闻的json结果

/news/list GET —> Spring MVC –> 返回某个新闻列表的json结果

基于Spring MVC开发JSP应用

http请求–》Spring MVC–》list.jsp–》返回HTML列表界面

  1. pom.xml额外增加jar引入

    • jasper引擎(tomcat解析jsp,内置tomcat不带)
    • jstl(JSP标签)
  2. application.properties额外增加参数

     spring.mvc.view.prefix=/
     spring.mvc.view.suffix=.jsp
    
  3. controller返回ModelAndView(视图名字和传出来的数据对象)

     public ModelAndView xx(){
         // ... ...
     }
    
  4. 在src/main/webapp目录下定义jsp文件

基于Spring MVC开发Thymeleaf应用

模板技术是对JSP一种替代技术。例如velocity(.vm+VTL)、freemarker(.ftl+FTL)、Thymeleaf(*.html+THTL)

JSP和模板技术区别:

  • JSP编译成Servlet,然后由Servlet生成HTML响应输出;模板是将模板和数据直接输出位HTML响应(模板技术效率高)
  • 模板技术只识别模板表达式语言;JSP使用的技术EL、JSTL、框架标签、Java代码等(模板技术简单易用)

http请求–》Spring MVC–》list.html–》返回HTML列表界面

  1. 在pom.xml引入jar包

    • spring-boot-starter-thymeleaf
    • spring-boot-starter-web
    • jdbc、驱动、devtools
  2. 在application.properties

    配置datasource、tomcat端口,其他不同配,默认thymeleaf访问src/main/resources/templates目录,扩展名*.html

  3. 编写Controller、service、dao等业务组件

    返回ModelAndView,去查找html模板,给模板传递数据

  4. 编写html模板文件

    在src/main/resources/templates目录定义html模板,里面使用th:xxx表达式语言。

     <html xmlns:th="https://www.thymeleaf.org">
         ... ...
     </html>
    

SpringBoot MVC机制

  1. SpringBoot静态资源存放和访问

    SpringBoot提供了src/main/resources目录下约定几个存放位置

    • META-INF/resources(优先级最高)
    • resources
    • static
    • public(优先级最低)

      如果需要修改静态资源目录,可以自定义配置

      @Configuration
      public class MyResourceConfiguration implements WebMvcConfigurer{

        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/**")
                .addResourceLocations(
                    "classpath:/mystatic/",
                    "classpath:/resources/",
                    "classpath:/static/",
                    "classpath:/public/");
        }
      

      }