第四章 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应用程序

  1. 添加依赖

  2. 创建实体

    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;
    }
    
    
  3. 创建控制器

    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;
        }
    }
    
    
  4. 创建用于展示的视图

    <!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>
    
    
  5. 可以访问了

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)

posted on 2021-01-08 02:00  大大影参谋  阅读(351)  评论(0编辑  收藏  举报