Springboot配置及使用
- springboot昨日回顾
1.1什么是springboot?
springboot和传统的ssm开发的优势
简化配置
对依赖进行版本控制
内置tomcat容器,方便启动和部署
1.2什么是微服务
微服务是一种架构风格,提倡将服务分成单个小型的应用,独立在自己进程中,服务与服务之间采用http进行交互
1.3.springboot中注意的细节
3.1parent依赖有什么作用
parent依赖定义了很多启动器,对版本作相应的控制,自动配置
3.2web启动器有什么作用
内置tomcat启动器web依赖json转换相关的依赖
3.3@springbootApplication注解有什么用
@EnableAutoConfiguration开启自动配置
@ComonentScan开启包扫描
Application类
里面的@SpringBootApplication注解是springboot的核心注解,主要作用是开启spring自动配置。使用这个注解相当于加上了下面三个注解:main方法中的SpringApplication.run在启动的时候会启动springboot程序,启动spring容器,启动内嵌的tomcat容器。
@Configuration 允许将其他@bean注解标识的类加入到spring容器中,相当于spring配置文件中的beans标签
@EnableAutoConfiguration 启动自动配置
@ComponentScan 会自动扫描当前包和子包下的标有@Component,@Service,@Repository,@Controller的类。相当于以前spring配置文件中的context:component-scan
不要创建一个比Application类包级别高的类,需要创建子包,因为spring boot会自动扫描application类的子包或者是平级的类。如果是高与application的话就无法扫描了。
resources目录
application.properties 是spring boot配置文件
static存放静态资源
templatesspring boot动态的数据不建议使用jsp,而是使用thymeleaf模板语言,跟velocity和freemarker类似,是一个模板引擎。是独立于spring boot的,并不是spring boot的一部分。
1、配置文件
当我们构建完Spring Boot项目后,会在resources目录下给我们一个默认的全局配置文件 application.properties,这是一个空文件,因为Spring Boot在底层已经把配置都给我们自动配置好了,当在配置文件进行配置时,会修改SpringBoot自动配置的默认值。
配置文件名是固定的
application.properties
但我们可以修改为
application.yml
这两个文件本质是一样的,区别只是其中的语法略微不同。
application.yml配置
在该文件中我们可以对已有默认配置的变量进行修改,也可以写自定义类并将值赋值进去.
2、值的写法
application.properties 配置文件比较简单,形式如下
key = value
application.yml 配置文件使用YMAL语言,YMAL不是如XML般的标记语言,更适合作为配置文件。
下面说下对于不同类型(字符串、数组)如何去规范书写。
2.1 数字,字符串,布尔
1、直接写
name=zhangsan
2、双引号
不会转义字符串里面的特殊字符,特殊字符会作为本身想表示的意思
name: “zhangsan n lisi”
输出:
zhangsan
lisi
3、单引号
会转义特殊字符,特殊字符最终只是一个普通的字符串数据
name: ‘zhangsan n lisi’
输出:
zhangsan n lisi
2.2 对象、Map(属性和值)(键值对)
例如配置类中的字段为
Map<String,String> maps;
在yml配置文件中,行内写法
person.maps: {key1: value1,key2: value2}
需要注意:号后的空格,或者
person:
maps:
key: value
在properties配置文件中
person.maps.key=value
2.3 数组(List、Set)
在yml配置文件中
person:
list:
- 1
- 2
- 3
行内写法
person:
list: [1,2,3]
在properties配置文件中
person.list[0]=1
person.list[1]=2
person.list[2]=3

编写person类添加注解@ConfigurationProperties(prefix = “person”)

除了使用yml方法外还可以使用
PropertyResource注解

yml和properties都可以获取到值,但是推荐使用yml.
只需要配置文件的某个值可以使用@value
配置文件加载位置
springboot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件
–file:./config/
–file:./
–classpath:/config/
–classpath:/
优先级由高到底,高优先级的配置会覆盖低优先级的配置;SpringBoot会从这四个位置全部加载主配置文件。
项目打包好以后,我们可以使用命令行参数的形式,启动项目的时候来指定配置文件的新位置;指定配置文件和默认加载的这些配置文件共同起作用形成互补配置;
我们还可以通过spring.config.location来改变默认的配置文件位置
外部配置加载顺序
SpringBoot也可以从以下位置加载配置,优先级从高到低,高优先级的配置覆盖低优先级的配置。
1) SpringBoot启动会加载大量的自动配置类
2) 先看我们需要的功能有没有SpringBoot默认写好的自动配置类
3) 再来看这个自动配置类中到底配置了哪些组件(只要我们要用的组件有,我们就不需要再来配置了)
4) 给容器中自动配置类添加组件的时候,会从properties类中获取某些属性。我们就可以在配置文件中指定这些属性的值
AutoConfigurartion:自动配置类;给容器中添加组件;
Properties:封装配置文件中相关属性;
总结.springboot配置原理
springboot自动配置原理简单的讲就是在@SpringbootApplication中有两个核心注解第一个是springbootConfiguration,它表明这是一个spring组件,还有一个注解@EnableAutoConfiguration该注解里面的内容有@AutoConfigurationPackage 他的作用是自动配置包,打开该注解发现里面还有个@import(Registrar)导入包的注册器.关系是@componentScan扫描到的包到Registrar.
该注解的作用是导入需要的组件在SpringbootApp包下的所有组件,元数据.注册进去
@EnableAutoConfiguration中另一个注解
自动配置导入选择器@Import({AutoConfigurationImportSelector.class}),
本文介绍了SpringBoot的优势,如简化配置、内置Tomcat等,并详细讲解了SpringBoot中的parent依赖、web启动器的作用,以及@SpringBootApplication注解的功能。此外,还讨论了SpringBoot的配置文件,包括application.properties和application.yml的使用、配置文件的加载顺序和优先级,以及如何自定义配置。
9773

被折叠的 条评论
为什么被折叠?



