1. 配置文件
配置文件:
1. 掌握yml和Properties的不同写法
2. 掌握俩种格式的转化
3. 掌握从配置文件中,读取配置信息即可
1.1 概念
计算机上有数以千计的配置⽂件, 我们使⽤的绝⼤多数软件, ⽐如浏览器, 微信, Idea, 甚⾄电脑, ⼿机, 都离不开配置⽂件. 我们可能永远不会直接与其中的⼤部分⽂件打交道,但它们确实以不同的形式散落在我们的计算机上, ⽐如C:\Users, C:\Windows⽂件夹, 以及各种 *.config, *.xml ⽂件
1.2 作用
它主要解决硬编码的问题,把可能会发⽣改变的信息, 放在⼀个集中的地⽅, 当我们启动某个程序时, 应⽤程序从配置⽂件中读取数据, 并加载运⾏.(硬编码是将数据直接嵌⼊到程序或其他可执⾏对象的源代码中, 也就是我们常说的"代码写死")
比如我调整idea里面的字体大小.我们可以自己调整,而不是写死了
2. Spring Boot 的配置文件
2.1 三种配置文件介绍
Spring Boot支持3种配置文件
1. application.properties
2. application.yml
3. application.yaml
2,3的关系: yml是yaml的缩写.这三种都是通用的配置文件.1,2用的比较多.1.开发时间长的常用.2.年轻人常用
1,2的写法不同不能直接改后缀就实现俩种格式的替换
这次我们主要来学application.properties这个配置文件.以键值对的形式来写配置文件
2.2 SpringBoot和tomcat的关系
Spring Boot是一个项目 tomcat是一个web服务器,用来启动发布web项目
Spring Boot把tomcat集成了进来.
之前我们tongghttp访问是使用的tomcat的功能.web项目不只有tomcat才可以启动,其他web容器也可以启动.比如jboss..他们都叫web容器.tomcat也不只能启动spring项目,其他的比如servlet项目.只要遵循http协议这个规范的就可以.
2.3 出现端口号冲突解决方式
1. 去后台杀进程(找到8080端口运行的程序,直接强制关闭)
2. 通过配置文件来指定端口号
配置文件的名字时不能修改的.因为这个是约定.它这个名字是在Spring里面更底层的地方就已经写死了.
2.4 properties 配置⽂件说明
2.4.1 Properties的语法
properties是以键值对(key-value)的形式配置的,键值对以=连接
在这里配置分为俩种
1. Spring提供的配置
这个就是定义了应用的名称
这个是Spring 官方配置
2. 用户自定义的配置
我们现在有个需求,把图书管理系统里面的变量改成写死的
1> 写配置文件
类型不用设定,Spring会知道哪种类型的
2> 把配置文件引入进来
- 定义参数来接受
- 写@Value注解
- 填写参数:参数名字是我们自定义配置的名字
2.4.2 properties 缺点分析
冗余信息多
为了解决这个问题,我们引入了yml
2.5 yml配置文件说明
2.5.1 yml的基本语法
yml 是树形结构的配置⽂件,它的基础语法是"key: value"
key 和 value 之间使⽤英⽂冒号加空格的⽅式组成,空格不可省略
我们先把properties改成yml
yml和properities配置的区别
proprieties->yml格式
自定义
2.5.2 yml的读取方式
从yml里面获取配置文件(自定义)
1> 我们先在yml里面写配置文件
2> 把配置文件引进来
运行结果:
获取另一种yml格式的配置(spring提供的配置)
运行结果:
获取第三种的方式
运行结果:
2.5.3 yml的高阶使用
1> yml配置不同的数据类型以及null
字符串加不加单引号还是双引号都是无所谓的
但是注意一下
• 字符串默认不⽤加上单引号或者双引号。
• 单引号会转义特殊字符,使其失去特殊功能, 始终是⼀个普通的字符串.
• 双引号不会转义字符串⾥⾯的特殊字符, 特殊字符会表⽰本⾝的含义.
此处的转义理解起来会有些拗⼝, \n 本意表⽰的是换⾏.使⽤单引号会转义, 就是说, \n 不再表⽰换⾏了, ⽽是表⽰⼀个普通的字符串 使⽤双引号不会转义, 表⽰ \n 表⽰的是它本⾝的含义, 就是换⾏
2> yml配置对象
从配置文件中读取一个对象. 这种对对象进行配置是很常见的.(比如数据库)里面的信息是对应数据库上的一个对象,我们操纵的时候就是从这里来拿值
先创建在model里面设置学生这个对象
先把这个对象交给Spring进行管理,加上@Componet注解,再通过yml去读.也就是通过@ConfigurationProperties("这里是配置文件的前缀")这个时候就不能⽤ @Value 来读取配置中的对象了,此时要使⽤另⼀个注解 @ConfigurationProperties 来读取.
@ConfigurationProperties的注意事项
3> 配置集合
我们任然是使用@ConfigurationProperties,而不是@Value
注意一下格式
4> 配置Map
对于格式的一些要求
运行结果:
yml的优缺点:
优点:
1. 可读性⾼,写法简单, 易于理解
2. ⽀持更多的数据类型, 可以简单表达对象, 数组, List,Map等数据形态.
3. ⽀持更多的编程语⾔, 不⽌是Java中可以使⽤, 在Golang, Python, Ruby, JavaScript中也可以使⽤
缺点:
1. 不适合写复杂的配置⽂件
2. 对格式有很强的要求(刚刚换不换行就会导致对象,集合传不传的过去的问题)
3.综合案例
验证码:
原理:
生成一个图片,图片里面包含干扰项和正确答案
需求分析:
要求生成界面如下
1. 页面生成验证码
2. 输入验证码,点击提交,验证用户输入验证码是否正确,正确就进行页面跳转.
使用的插件:
网址: 配置文件,Spring,配置,验证码,properties,yml From: https://blog.csdn.net/2201_75880772/article/details/145104658