初识SpringBoot

一、SpringBoot介绍

随着动态语言的流行(Ruby、Scala、Node.js), Java的开发显得格外的笨重;繁多的配置、低下的开 发效率、复杂的部署流程以及第三方技术整合难度大。

在上述环境下,Spring Boot由此诞生,它的设计是为了使您能够尽可能快地启动和运行。它使用 “习惯 优于配置” (项目中存在大量的配置,而 Spring Boot 内置一个习惯性的配置,让你无须手动进行配 置)的理念让你的项目快速运行起来。使用 Spring Boot 很容易创建一个独立运行(运行jar,内嵌 Servlet 容器)、准生产强力的基于 Spring 框架的项目,使用 Spring Boot你可以不用或者只需要很少 的 Spring 配置。提供了 J2EE 开发的一站式解决方案。

二、 实现处理请求案例

1、在主程序的同级目录下,新建一个controller包,一定要在同级目录下,否则识别不到

2、在包中新建一个HelloController类

3、编写完毕后,从主程序启动项目,浏览器发起请求,看页面返回;控制台输出了 Tomcat 访问的端口号!

三、运行原理初步探究

1. spring-boot-starter-parent springBoot项目都要继承spring-boot-starter-parent spring-boot-starter-parent中定义了若干个依赖管理 继承parent模块可以避免多个依赖使用相同技术时出现依赖冲突继承parent的形式也可以采用引入依赖的形式实现效果例如alibaba

2. start 导入套餐形式的坐标从而简化配置,坐标实现依赖传递

3. 引导类程序主入口,初始化spring容器,扫描所有类可以通过run方法返回值获取bean检验

4. 内嵌tomcat

  • SpringBoot提供了2种配置文件类型:properteis和yml/yaml
  • 默认配置文件名称:application
  • 在同一级目录入如果三类文件共存,优先级为:properties > yml > yaml                               

四、YAML概述

YAML是一种直观的能够被电脑识别的的数据数据序列化格式, 并且容易被人类阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入,比 如: C/C++, Ruby, Python, Java, Perl, C#, PHP等。YML文件是以数据为核心的,比传统的xml方式更加简洁。

YAML文件的扩展名可以使用.yml或者.yaml。 

五、YAML基础语法

1. 大小写敏感

2. 数据值前边必须有空格,作为分隔符

3. 使用缩进表示层级关系

4. 缩进时不允许使用Tab键,只允许使用空格(各个系统 Tab对应的 空格数目可能不同,导致层次混 乱)。

5. 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可

6. "#"表示注释,从这个字符一直到行尾,都会被解析器忽略。

#   字面量:普通的值  [ 数字,布尔值,字符串  ]
boolean: TRUE           #TRUE,true,True,FALSE,false,False均可
float: 3.14             #6.8523015e+5 #支持科学计数法
int: 123                #0b1010_0111_0100_1010_1110 #支持二进制、八进制、十六进制
string: HelloWorld           #字符串可以直接书写

#  数组:一组按次序排列的值( List、set )
address:
  - 西安
  - 上海
  - 杭州
# 行内写法
commpany: [阿里巴巴,华为,腾讯,字节跳动]

#  对象、Map(键值对)
person1:
  name: lili
  age: 30
  sex: 男

# 行内写法
person2: {name: 王wu,age: 34,sex: 男}

#对象数组格式一
users1:
  - name: Tom
    age: 4
  - name: Jerry
    age: 5

#对象数组格式二
users2:
  -
    name: Tom
    age: 4
  -
    name: Jerry
    age: 5

#对象数组缩略格式
users3: [ { name:Tom,age:4 },{ name:Jerry,age:5 } ]


#yaml引用
name: 张三

person:
  name: 李四
  pet: ${name} # 引用上边定义的name值
  age: ${random.uuid} # 配置文件占位符,随机uuid

六、读取配置内容

支持方式:

逐个注入:@Value

批量注入:1.@ConfigurationProperties 2.Environment类 (常用批量注入)

七、JSR303数据校验

对于web服务来说,为防止非法参数对业务造成影响,在 Controller 层一定要做参数校验的!大部分情况下,请求参数分为如下两种形式:

1. POST 、 PUT 请求,使用requestBody 传递参数;

2. GET 请求,使用 requestParam/PathVariable 传递参数。

什么是 JSR303 标准?

JSR的全称是Java Specification Requests(Java 规范提案),是指向JCP ( Java Community Process )提出 新增一个标准化技术规范的正式请求。

Java API规范( JSR303 )定义了 Bean 校验的标准 validation-api ,但没有提供实现。 validation 是对这个规范的实现,并增加了校验注解如 @Email 、 @Length 等。 hibernate Spring Validation 是对 来,我们以 hibernate validation 的二次封装,用于支持 spring-boot 项目为例,介绍 spring mvc参数自动校验。接下 Spring Validation 的使用

1.添加依赖,导入spring-boot-starter-validation启动器

2.在实体类需要校验的成员字段(Field)上,添加校验注解。

3.在Controller控制器的校验参数前,使用@Valid注解开启校验,使用BindingResult 绑定校验结果

Controller统一异常处理

@ControllerAdvice:统一为Controller进行"增强"

@ExceptionHandler : 异常处理

@ControllerAdvice
 public class BindExceptionUtilAdvice {
 // 验证参数未使用@RequestBody注解
@ExceptionHandler(BindException.class)
@ResponseBody//选择添加
public String handlerBindException(BindException ex, HttpServletRequest 
request){
 return "全局异常处理器成功"; // 跳转至统一提示错误信息的视图
 }
 }

八、多环境切换profile

我们在开发Spring Boot应用时,通常同一套程序会被安装到不同环境,比如:开发、测试、生产等。 其中数据库地址、服务 器端口等等配置都不同,如果每次打包时,都要修改配置文件,那么非常麻烦。

profile功能就是来进行动态配置切换的;

命名语法: :

application-dev.properties/yml 开发环境

application-test.properties/yml 测试环境

application-pro.properties/yml 生产环境

1) profile配置方式 多profile文件方式

2) profile激活方式 配置文件 : 

spring:

        profiles:

                active:  环境简称

  • 22
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值