关于SpringBoot框架

在之前就有过一篇关于SpringBoot框架的文章,感觉写的特别差,今天再写一篇,作为自己的一个笔记吧。如果有什么错误,还请各位大佬多多指正。

1 SpringBoot概述

SpringBoot 提供了一种快速使用 Spring 的方式,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率,一定程度上缩短项目周期。

2 SpringBoot功能

2.1 自动配置

Spring Boot 的自动配置是一个运行时(应用程序启动时)的过程,考虑了众多因素,才决定 Spring 配置应该用哪个,不该用哪个。该过程是 SpringBoot 自动完成的。

2.2 起步依赖

起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。
简单的说,起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。

2.3 辅助功能

提供了一些大型项目中常见的非功能性特性,如嵌入式服务器、安全、指标,健康检测、外部配置等。

Spring Boot并不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式。

2.4 小结

  • SpringBoot在创建项自时客使用jar的打包方式。
  • SpringBoot的引导类,是项目入口,运行main方法就可以启动项目。
  • 使用 SpringBoot 和 Spring 构建的项目,业务代码编写方式完全一样。

3 配置文件

3.1配置文件分类

SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用application.properties或者application.yml ( application.yaml )进行配置。

3.2 小结

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

4 关于YAML配置文件

YAML是一种直观的能够被电脑识别的的数据数据序列化格式,并且容易被人类阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入。YML文件是以数据为核心的,比传统的xml方式更加简洁。
YAML文件的扩展名可以使用 .yml 或者 .yaml 。

4.1 YAML基本语法

  • 大小写敏感
  • 数据值前边必须有空格,作为分隔符
  • 使用缩进表示层级关系
  • 缩进时不允许使用Tab键,只允许使用空格(各个系统Tab对应的空格数目可能不同,导致层次混乱)。缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
  • #表示注释,从这个字符一直到行尾,都会被解析器忽略。
server:
 port: 8080
 address: 127.0.0.1
 
name: abc
# age: 12

4.2 YAML数据格式

# 对象(map):键值对的集合。
person:
 name: zhangsan#行内写法
person: {name : zhangsan}

# 数组:一组按次序排列的值
address:
 - beijing
 - shanghai

# 行内写法
address: [beijing,shanghai]

# 纯量;单个的、不可再分的值
msg1: 'hello ln world' # 单引忽略转义字符
msg2: "hello ln wor1d" # 双引识别转义字符

4.2 YAML参数引用

name: lisi

person:
 #引用上边定义的name的值
 name: ${ name }

4.3 读取配置内容

@Value
Environment
@ConfigurationProperties

5 profile

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

5.1 profile配置方式

  • 多profile文件方式
  • yml多文档方式

5.2 profilg激活方式

  • 配置文件
  • 虚拟机参数
  • 命令行参数

5.3 小结

  • profile 是用来完成不同桥境下,配置动态切换功能的。
  • profile 配置方式
    • 多profile文件方式:提供多个配置文件,每个代表一种环境。
      • application-dev.properties/yml开发环境
      • application-test.properties/yml测试环境
      • application-pro.properties/yml生产环境
    • yml多文档方式:
      • 在yml中使用-分隔不同配置
  • profile激活方式
    • 配置文件:再配置文件中配置: spring.profiles.active=dev
    • 虚拟机参数:在VM options指定: -Dspring.profiles.active=dev
    • 命令行参数:java-jar xoxx.jar --spring.profiles.active=dev

6 内部配置加载顺序

Springboot程序启动时,会从以下位置加载配置文件:

  • 1、file:./config/ :当前项目下的/config目录下
  • 2、file:./ :当前项目的根目录
  • 3、classpath:/config/ :classpath的/config目录
  • 4、classpatl/ :classpath的根目录

多个配置文件,高优先级配置的属性会生效。而且多个配置文件都会被加载,形成了一种互补的形式。只不过相同的配置属性高优先级的会覆盖低优先级的。

SpringBoot整合Mybatis

配置文件

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/springboot_db?serverTimezone=UTC
    username: root
    password: root

#mybatis:
#  # Dao映射文件路径
#  mapper-locations: classpath:mapper/*Dao.xml
#  # 配置别名
#  type-aliases-package: com.itheima.domain

如果SQL语句使用注解开发,则不需要进行Mybatis的配置。如果使用Mybatis映射配置文件,则需要对Mybatis进行配置。

适用人群 Java开发人员,Vue开发人员,前后端分离开发人员,权限管理和配置开发人员 课程概述 【讲师介绍】 讲师职称:               现某知名大型互联网公司资深架构师,技术总监,职业规划师,首席面试官,曾在某上市培训机构,高校任教多年。             Array(Array老师)10多年互联网公司实战经验,知名的大型互联网公司的架构师,高管等职,在企业长期从事于技术的源码阅读和新技术的研究;擅长于职业规划,面试辅导,从事面试官多年;擅长于JAVA,人工智能AI应用,Xmind等等,曾服役于国内某上市培训机构数年,独特的培训思路,培训体系,培训方式,实践的职场技能,职场现状,职场晋升等让你快速适应企业职场的所需。  【课程介绍】 技术选型 开发环境:Eclipse/Idea ,JDK 1.8以上  后端技术 核心框架SpringBoot2.x框架系列(同样适用Springcloud F版本以后的版本),如下(节选):     持久层框架:MyBatis 3.x + Mybatis-plus 3.x 日志管理:SLF4J 1.7 + Log4j2 2.7 工具类:Apache Commons、Jackson 、fastjson、Gson 权限验证 前端技术   Vue   Vue-cli ElementUI ---https://element.eleme.io/ JSX (JavaScript Xml) 前台的权限验证和路由设置 开发模式        前后端分离的开发 数据库        Mysql5 IDE     Intellij Idea
课程简介 这是一门使用Java语言,SpringBoot框架,从0开发一个RESTful API应用,接近企业级的项目(我的云音乐),课程包含了基础内容,高级内容,项目封装,项目重构等知识,99%代码为手写;因为这是项目课程;所以不会深入到源码讲解某个知识点,以及原理,但会粗略的讲解下基础原理;主要是讲解如何使用系统功能,流行的第三方框架,第三方服务,完成接近企业级项目,目的是让大家,学到真正的企业级项目开发技术。 适用人群 刚刚毕业的学生 想提高职场竞争力 想学从零开发SpringBoot项目 想提升SpringBoot项目开发技术 想学习SpringBoot项目架构技术 想学习企业级项目开发技术 就是想学习SpringBoot开发 能学到什么 从0开发一个类似企业级项目 学会能做出市面上90%通用API 快速增加1到2年实际开发经验 刚毕业学完后能找到满意的工作 已经工作学完后最高涨薪30% 课程信息 全课程目前是82章,155小时,每节视频都经过精心剪辑。 在线学习分辨率最高1080P 课程知识点 1~11章:学习方法,项目架构,编码规范,Postman使用方法,Git和Github版本控制 12~16章:搭建开发环境,快速入门SpringBoot框架 17~20章:快速入门MySQL数据库 21~30章:MyBatis,登录注册,找回密码,发送短信,发送邮件,企业级接口配置 31~41章:实现歌单,歌单标签,音乐,列表分页,视频,评论,好友功能 42~48章:阿里云OSS,话题,MyBatis-plus,应用监控 49~53章:Redis使用,集成Redis,SpringCache,HTTP缓存 54~58章:Elasticsearch使用,集成Elasticsearch,使用ES搜索 59~61章:商城,集成支付宝SDK,支付宝支付 62~64章:常用哈希和加密算法,接口加密和签名 65~67章:实时挤掉用户,企业级项目测试环境,企业级接口文档 68~69章:SpringBoot全站HTTPS,自签证书,申请免费证书 70~73章:云MySQL数据库,云Redis数据库使用,轻量级应用部署环境,域名解析 74~80章:Docker使用,生产级Kubernetes集群,域名解析,集群全站HTTPS 81~82章:增强和重构项目,课程总结,后续学习计划
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页