spring-boot笔记
发布日期:2022-02-10 11:36:59
浏览次数:51
分类:技术文章
本文共 1838 字,大约阅读时间需要 6 分钟。
Spring-boot
概念:SpringBoot提供了一种快速使用Spring的方式,基于约定优于配置的思想.2014 年 4 月,Spring Boot 1.0.0 发布。Spring的顶级项目之一(https://spring.io)
定义:
- 快速搭建Spring项目的工具
功能:
- 快速启动:内置了各种应用服务器,默认使用tomcat
- 自动配置: 控制Springboot内部的程序那些生效
- 依赖管理: 自动管理JAR的版本
- 统一监控: 监控服务的运行状态
Spring缺点
-
配置繁琐:Spring的组件代码是轻量级的,但它的配置却是重量级的
-
依赖繁琐:项目的依赖管理也是十分耗时耗力的事情
Spring-boot项目中配置文件中的优先级
SpringBoot的底层实现原理
通过@EnableAutoConfiguration注解加载Springboot内置的自动初始化类(加载什么类是配置在spring.factories),这这些类中在基于spring4.0提供的Condition接口进行Bean的初始化。
SpringBoot 起步依赖原理简单分析
- 在spring-boot-starter-parent中定义了各种技术的版本信息,组合了一套最优搭配的技术版本
- 在各种starter中,定义了完成该功能需要的依赖合集,其中大部分版本信息来自于父工程
- 工程继承parent,引入starter后,通过依赖传递,就可以简单方便获得需要的jar包,并且不会存在 版本冲突等问题。
Spring-boot配置文件分类
SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用 application.properties或者application.yml(application.yaml)进行配置
-
properties
server.port=8080
-
yml
server:port: 8080
yml/yaml
-
YAML文件的扩展名可以使用.yml或者.yaml。
-
简洁,以数据为核心
-
基本语法
- 大小写敏感
- 使用缩进表示层级关系
- 数据值前边必须有空格,作为分隔符
- 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
- # 表示注释,从这个字符一直到行尾,都会被解析器忽略
server: port: 8080 address: 127.0.0.1name: abc
yml数据格式
-
对象(map):键值对的集合
person: name: zhangsan# 行内写法person: { name: zhangsan}
-
数组:一组按次序排列的值
address: - beijing - shanghai# 行内写法address: [beijing,shanghai]
-
纯量:单个的、不可再分的值
msg1: 'hello \n world' # 单引忽略转义字符msg2: "hello \n world" # 双引识别转义字符
yml数据应用
name: lisiperson: name: ${ name} # 引用上边定义的name值
profile
-
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 xxx.jar --spring.profiles.active=dev
配置加载顺序
-
内部配置
- file:./config/:当前项目下的/config目录下
- file:./ :当前项目的根目录
- classpath:/config/:classpath的/config目录
- classpath:/ :classpath的根目录
-
外部配置
- 参考spring-boot官网
转载地址:https://blog.csdn.net/drug1910951117/article/details/108327991 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
感谢大佬
[***.8.128.20]2024年04月05日 08时44分17秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Qt网络编程———TCP(1)
2019-04-27
java 构造方法中super()和this()
2019-04-27
华为HCIA-datacom 学习笔记汇总目录
2019-04-27
第4章 Python 数字图像处理(DIP) - 频率域滤波1 - 傅里叶级数和变换简史
2019-04-27
v-if和v-show的区别
2019-04-27
Linux下创建用户,分组,配置jdk, tomcat
2019-04-27
HikariCP、MySQL Configuration 性能优化
2019-04-27
系统配置自动装载机制 - 分布式开发
2019-04-27
SpringCloud实战 - Hystrix
2019-04-27
Kafka实战(七) - 优雅地部署 Kafka 集群
2019-04-27
Java支付系统(三) - SpringBoot 应用程序搭建
2019-04-27
详解Java业务领域分层模型中的vo/po/dto/pojo/bo
2019-04-27
Java持久层框架MyBatis全注解详解
2019-04-27
Java线程组ThreadGroup
2019-04-27
Java同步器之AbstractOwnableSynchronizer详解
2019-04-27
为什么需要学习并发编程?
2019-04-27
Java计算机IT编程文档常见单词翻译
2019-04-27