SpringBoot配置及使用

本文介绍了SpringBoot的优势,如简化配置、内置Tomcat等,并详细讲解了SpringBoot中的parent依赖、web启动器的作用,以及@SpringBootApplication注解的功能。此外,还讨论了SpringBoot的配置文件,包括application.properties和application.yml的使用、配置文件的加载顺序和优先级,以及如何自定义配置。

Springboot配置及使用

  1. 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}),

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值