Spring Boot非常适合Web应用程序开发。 我们可以使用嵌入式Tomcat,Jetty或Undertow轻松创建自包含的HTTP服务器。 大多数Web应用程序将使用spring-boot-starter-web模块快速启动和运行。

  一。关于SpringBoot中的mvc

  在SpringBoot中使用mvc与springmvc基本一致,我们甚至可以按照springmvc中的标准来完成控制器的实现。

  代码示例:

package com.bdqn.lyrk.study.springboot.controller;

import lombok.AllArgsConstructor;
import lombok.Data;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; /**
* @author chen.nie
*/
@Controller
@RequestMapping("/index")
public class IndexController { @GetMapping("/index")
public String index() {
return "index";
} @GetMapping("/number/{number}/Desc/{desc}")
@ResponseBody
public BeanEntity bean(@PathVariable ("number") int number, @PathVariable("desc") String desc) {
return new BeanEntity(number,desc);
}
} @Data
@AllArgsConstructor
class BeanEntity {
private int number;
private String desc;
}

  当我们访问浏览器地址时得到对应的结果:

  我们可以发现这里跟springmvc中controller写法无二,其余的service层和dao层也均是按常规写法,用@Service和@Repository标记service与dao即可

  二.关于SpringBoot中mvc(静态资源-视图)

    默认情况下,Spring Boot将从类路径或ServletContext的根目录中的名为/static(或/ public或/resources或/META-INF/resources)的目录提供静态内容。

    在静态内容当中我们可以放js,css样式等文件,除Web服务,我们还可以使用Spring MVC来提供动态HTML内容。Spring MVC支持各种模板技术,包括Thymeleaf,FreeMarker和JSP。当然SpringBoot不推荐用JSP来作为视图层,通常情况我们把模板放在src/main/resources/templates下

  以下目录就是典型的模板与静态资源目录结构,按照上述规则我们把静态资源js文件放在static目录下,模板文件(这里使用的是Freemarker)放在规定的目录下:

  

  三.关于SpringBoot中的devtools(开发者工具)

    在使用SpringBoot时,有时候我们希望能够在改变相关资源时能够实时生效,尤其在更新视图资源时,体现尤为突出,那么这时候我们可以用SpringBoot给我们提供开发者工具来实现该效果,当类路径上的文件发生更改时自动重新启动:

  gradle代码:

dependencies {
compile("org.springframework.boot:spring-boot-devtools")
}

  排除资源:

    如果要自定义这些排除项在类路径上的文件发生更改时自动重新启动,可以使用spring.devtools.restart.exclude属性。

  监视额外的路径:

    对不在类路径中的文件进行更改时,需要重新启动或重新加载应用程序,可以使用spring.devtools.restart.additional-paths属性来配置其他路径以监视更改

  使用触发器文件
    当使用IDE工具连续不断的进行编译,每次都重启并不好,因此当我们需要特定时间进行重启时,可使用触发文件
    因此我们可以使用spring.devtools.restart.trigger-file来指定触发文件

liveReload:

    springboot开发者工具包含一个liveReload服务器,它可以在静态资源改变时触发浏览器刷新

  四。SpringBoot添加对jsp的支持

   1) 原则上来说,SpringBoot不推荐使用Jsp做为视图层,如果想用Jsp,我们需要包含以下的依赖:

    

     <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jasper</artifactId>
<version>8.5.28</version>
</dependency>

   2) 在application.properties做相关视图的配置

    

spring.mvc.view.suffix=/WEB-INF/jsp/
spring.mvc.view.prefix=.jsp

    

SpringBoot学习之mvc的更多相关文章

  1. Springboot学习03-SpringMVC自动配置

    Springboot学习03-SpringMVC自动配置 前言 在SpringBoot官网对于SpringMVCde 自动配置介绍 1-原文介绍如下: Spring MVC Auto-configur ...

  2. SpringBoot学习笔记(3):静态资源处理

    SpringBoot学习笔记(3):静态资源处理 在web开发中,静态资源的访问是必不可少的,如:Html.图片.js.css 等资源的访问. Spring Boot 对静态资源访问提供了很好的支持, ...

  3. SpringBoot学习笔记(2):引入Spring Security

    SpringBoot学习笔记(2):用Spring Security来保护你的应用 快速开始 本指南将引导您完成使用受Spring Security保护的资源创建简单Web应用程序的过程. 参考资料: ...

  4. SpringBoot学习笔记(10):使用MongoDB来访问数据

    SpringBoot学习笔记(10):使用MongoDB来访问数据 快速开始 本指南将引导您完成使用Spring Data MongoDB构建应用程序的过程,该应用程序将数据存储在MongoDB(基于 ...

  5. 【深度分析】:阿里,腾讯面试题 SpringBoot整合Spring MVC

    Java学习总结 SpringBoot整合Spring MVC 1.SpringMVC概述 MVC(Model–view–controller)是软件工程中的一种软件架构模式,基于此模式把软件系统分为 ...

  6. springboot 学习资源推荐

    springboot 是什么?对于构建生产就绪的Spring应用程序有一个看法. Spring Boot优先于配置的惯例,旨在让您尽快启动和运行.(这是springboot的官方介绍) 我们为什么要学 ...

  7. Springboot学习记录1--概念介绍以及环境搭建

    摘要:springboot学习记录,环境搭建: 官方文档地址:https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/ht ...

  8. SpringBoot学习笔记

    SpringBoot个人感觉比SpringMVC还要好用的一个框架,很多注解配置可以非常灵活的在代码中运用起来: springBoot学习笔记: .一.aop: 新建一个类HttpAspect,类上添 ...

  9. springboot学习(一)——helloworld

    以下内容,如有问题,烦请指出,谢谢 springboot出来也很久了,以前零散地学习了不少,不过很长时间了都没有在实际中使用过了,忘了不少,因此要最近准备抽时间系统的学习积累下springboot,给 ...

随机推荐

  1. 函数式编程之foldLeftViaFoldRight

    问题来自 Scala 函数式编程 一书的习题, 让我很困扰, 感觉函数式编程有点神学的感觉.后面看懂之后, 又觉得函数式编程所提供的高阶抽象是多么的强大. 这个问题让我发呆了好久, 现在把自己形成的想 ...

  2. 不看就亏了:DELL EqualLogic PS6100详解及数据恢办法

    DELL EqualLogic PS6100采用虚拟ISCSI SAN阵列,为远程或分支办公室.部门和中小企业存储部署带来企业级功能.智能化.自动化和可靠性,支持VMware.Solaris.Linu ...

  3. ES6常用新特性

    https://segmentfault.com/a/1190000011976770?share_user=1030000010776722 该文章为转载文章!仅个人喜好收藏文章! 1.前言 前几天 ...

  4. maven多环境部署

    1.首先在maven的pom.xml文件中添加profiles标签,然后分别添加3个不同环境的profile, 本例中添加了dev.test.product三个环境,这个可以根据自己的需要添加和减少. ...

  5. hadoop大数据技术架构详解

    大数据的时代已经来了,信息的爆炸式增长使得越来越多的行业面临这大量数据需要存储和分析的挑战.Hadoop作为一个开源的分布式并行处理平台,以其高拓展.高效率.高可靠等优点越来越受到欢迎.这同时也带动了 ...

  6. Python内置函数(27)——range

    英文文档: range(stop) range(start, stop[, step]) Rather than being a function, range is actually an immu ...

  7. python 判断变量是否是 None 的三种写法

    代码中经常会有变量是否为None的判断,有三种主要的写法:第一种是`if x is None`:第二种是 `if not x:`:第三种是`if not x is None`(这句这样理解更清晰`if ...

  8. java基础总结(1)安装jdk

           卸载java java -version yum remove java yum groupjava java        安装java tar -zxvf jdk-8u60-linu ...

  9. 新概念英语(1-21)Whick book

    Which book does the man want? A:Give me a book, please, Jane? B:Whick book? this one ? A:No, not tha ...

  10. maven入门(10)maven的仓库

    [0]README 1)本文部分文字转自 "maven实战",旨在 review  "maven(6)仓库" 的相关知识:   [1]何为 Maven仓库 1) ...