龙中华著《Spring Boot实战派》读书笔记之基础篇
第四章 Spring Boot 基础
4.1 了解Spring Boot
项目结构
src/main/java             //入口类,等
src/main/resources       //静态文件和配置文件
src/test/java             //测试
入口类
@SpringBootApplication
热部署
更好的支持调试,可以不必重启让代码的改动生效。
自定义banner
可以定制banner的内容,格式
可以关闭banner
4.2 常用注解annotation
可以用于标注:包,类,方法,变量
系统注解
@Override
@Deprecated
@SuppressWarnnings
Spring Boot 常用注解
类的注解
@SpringBootApplication
@ComponentScan
@EnableAutoConfiguration
@RestController    			// JSON/XML
@RequestMapping
@Controller					//MVC
@Service
@Autowired
@Component
@Repository
方法的注解
@Bean
@ResponseBody
@RequestBody
@PathVariable
4.3 配置文件
分为 properties和yml
springboot中如果application.yml和application.properties都存在yml和properties文件的执行顺序:
如果工程中两个文件都存在,那么yml文件会先执行,后执行properties文件。properties文件会把yml文件覆盖,所以工程中一般都是只留一种即可。
可以配置多环境
指定活动环境的方法,在application.yml中指定如下:
spring:
    profiles:
        active:dev
4.4 Starter
开箱即用特性
第五章 分层开发Web 应用程序
5.1 MVC模式
5.2 视图技术:Thymeleaf
5.3 控制器
5.4 模型
5.5 实例:实现MVC模式的Web应用程序
- 添加依赖
- 创建实体- package com.example.demo.model;
 import lombok.Data;
 /**
 * Author: longzhonghua
 * Date: 3/22/2019 10:42 AM
 */
 @Data
 public class User {
 //定义id
 private long id;
 //定义用户名
 private String name;
 //定义用户年龄
 private int age;
 }
- 创建控制器- package com.example.demo.controller;
 import com.example.demo.model.User;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.servlet.ModelAndView;
 /**
 * Author: longzhonghua
 * Date: 3/22/2019 10:42 AM
 */
 @Controller
 public class MVCDemoController {
 //映射URL地址
 @GetMapping("/mvcdemo")
 public ModelAndView hello() {
 //实例化对象
 User user=new User();
 user.setName("liuhy");
 user.setAge(38);
 //定义mvc中的视图模板
 ModelAndView modelAndView=new ModelAndView("mvcdemo");
 //传递user实体对象给视图
 modelAndView.addObject("user",user);
 return modelAndView;
 }
 }
- 创建用于展示的视图- <!DOCTYPE html>
 <!--thymeleaf模板支持-->
 <html lang="en" xmlns:th="http://www.thymeleaf.org">
 <head>
 <meta charset="utf-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 </head>
 <body>
 <div>
 <!-- 显示由控制器传递过来的实体user的值-->
 <div th:text="${user.name}"></div>
 <div th:text="${user.age}"></div>
 </div>
 </body>
 </html>
- 可以访问了
http://localhost:8080/mvcdemo
5.6 实例:验证数据
内置验证器的功能很强大
package com.example.demo.entity;
import com.example.demo.MyConstraint;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.*;
import java.io.Serializable;
/**
 * Copyright (C), 2019-2019, XXX有限公司
 * FileName: User
 * Author:   longzhonghua
 * Date:     2019/4/18 18:12
 *
 * @Description: $description$
 * History:
 * <author>          <time>          <version>          <desc>
 * 作者姓名           修改时间           版本号              描述
 */
@Data
public class User implements Serializable {
    private Long id;
    @NotBlank(message = "用户名不能为空")
    @Length(min = 5, max = 20, message = "用户名长度为5-20个字符")
    private String name;
    @NotNull(message = "年龄不能为空")
    @Min(value = 18 ,message = "最小18岁")
    @Max(value = 60,message = "最大60岁")
    private Integer age;
    @Email(message = "请输入邮箱")
    @NotBlank(message = "邮箱不能为空")
    private String email;
    @MyConstraint // 需要自己定义,详见原著
    private String answer;
}
可以自定义验证器
第六章 响应式编程 WebFlux
欠奉(因为WebFlux不支持MySQL)
龙中华著《Spring Boot实战派》读书笔记之基础篇的更多相关文章
- 《spring boot 实战》读书笔记
		前言:虽然已经用spring boot开发过一套系统,但是之前都是拿来主义,没有系统的,全面的了解过这套框架.现在通过学习<spring boot实战>这本书,希望温故知新.顺便实现自己的 ... 
- [Spring Boot Reference Guide] 读书笔记一 Getting Started
		8. Introducing Spring Boot Goals of spring boot: Provide a radically faster and widely accessible ge ... 
- SpringBoot实战派读书笔记---响应式编程
		1.什么是WebFlux? WebFlux不需要Servlet API,在完全异步且无阻塞,并通过Reactor项目实现了Reactor Streams规范. WebFlux可以在资源有限的情况下提高 ... 
- 《Spring Boot 实战纪实》之过滤器
		导航 什么是过滤器 Spring的过滤器 Filter定义 过滤的对象 典型应用 过滤器的使用 Filter生命周期 过滤器链 自定义敏感词过滤器 新增自定义过滤器 添加 @WebFilter注解 添 ... 
- spring boot实战(第十三篇)自动配置原理分析
		前言 spring Boot中引入了自动配置,让开发者利用起来更加的简便.快捷,本篇讲利用RabbitMQ的自动配置为例讲分析下Spring Boot中的自动配置原理. 在上一篇末尾讲述了Spring ... 
- spring boot实战(第十二篇)整合RabbitMQ
		前言 最近几篇文章将围绕消息中间件RabbitMQ展开,对于RabbitMQ基本概念这里不阐述,主要讲解RabbitMQ的基本用法.Java客户端API介绍.spring Boot与RabbitMQ整 ... 
- Spring Boot实战系列-----------邮件发送
		快速导航 添加Maven依赖 配置文件增加邮箱相关配置 Service.Test项目代码构建 五种邮件发送类型讲解 文本邮件 html邮件 附件邮件 html内嵌图片邮件 模板邮件 问题汇总 添加ma ... 
- Spring Boot 实战与原理分析视频课程
		Spring Boot 实战与原理分析视频课程 链接:https://pan.baidu.com/share/init?surl=PeykcoeqZtd1d9lN9V_F-A 提取码: 关注公众号[G ... 
- spring boot实战(第一篇)第一个案例
		版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] spring boot实战(第一篇)第一个案例 前言 写在前面的话 一直想将spring boot相关内容写成一个系列的 ... 
- [转] Spring Boot实战之Filter实现使用JWT进行接口认证
		[From] http://blog.csdn.net/sun_t89/article/details/51923017 Spring Boot实战之Filter实现使用JWT进行接口认证 jwt(j ... 
随机推荐
- 从零搭建hadoop集群之节点间免密登录
			我这里有三台虚拟机 分别是 hadoop01 hadoop02 hadoop03 1.所有节点切入到hadoop用户 2.分别再三个节点上输入 ssh-keygen 命令(输入命令后敲回车键三下) ... 
- 什么是cache
			什么是cacheTo minimize the quantity of control information stored, the spatial locality property is use ... 
- django的注意事项
			1 允许 0.0.0.0:8000 ALLOWED_HOSTS = ['*'] 2 py文件的import ,要新建一个文件夹 如tool,与manage.py同级 再去导入 
- PCA降维练习
			[题目] 1.现有我国大陆30个省.直辖市.自治区的经济发展状况数据集如表所示,包括8项经济指标:国民生产总值(A1):居民消费水平(A2):固定资产投资(A3):职工平均工资(A4):货物周转量(A ... 
- 解决npm ERR! Cannot read properties of null (reading ‘pickAlgorithm‘)报错问题
			解决方法:在终端中运行命令:npm cache clear --force 然后重新运行 npm i 命令,再次安装安装完成,没有出现报错npm run serve 运行项目,项目可以正常启动了. 安 ... 
- C++实现单链表相关操作
			#include<iostream>#include<cstdlib>//C++动态分配存储空间using namespace std;#define OK 1#define ... 
- vue把后端传的数字 转成中文显示在页面
- centos/redhat 多路径存储使用 - 客户端
			DM Multipath(DMMP)工具 磁盘扫描 添加磁盘到dg--首先通知存储管理员划分相应的盘到指定的机器,说明共享--扫描磁盘(两个节点执行)[root@testrac1 ~]# echo & ... 
- memoのMac折腾记录
			memoのMac折腾记录 纯粹是一些零散的学习记录.有错误欢迎指出. 我就是一鼠标党,不会Linux. zsh加载 惭愧,最近才知道bash和zsh是两个不同的终端... 之前看一些mac设置系统环境 ... 
- scala调用fastjson JSON.toJSONString()序列化对象出错
			在scala中需要将case class 序列化为string,代码如下 results.map(JSON.toJSONString(_)).foreach(println) case class p ... 
