ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

SpringBoot常用知识点

2022-06-12 16:33:49  阅读:178  来源: 互联网

标签:知识点 常用 SpringBoot 配置文件 properties application file yml name


项目配置文件加载顺序

文件名顺序

先加载bootstrap.yml(bootstrap.properties)

后加载application.yml(application.properties)

位置顺序:

优先级第一:

file:./config/:当前项目下的/config目录下

![img](file:///C:\Users\阿谢\AppData\Local\Temp\ksohtml22376\wps1.jpg)

优先级第二:

file:./ :当前项目的根目录

![img](file:///C:\Users\阿谢\AppData\Local\Temp\ksohtml22376\wps2.jpg)

优先级第三:

classpath:/config/:

![img](file:///C:\Users\阿谢\AppData\Local\Temp\ksohtml22376\wps3.jpg)

优先级第四:

classpath:/

![img](file:///C:\Users\阿谢\AppData\Local\Temp\ksohtml22376\wps4.jpg)

项目外部配置加载顺序

#配置-yaml基本语法

#大小写敏感 
#数据值前边必须有空格,作为分隔符 
#使用缩进表示层级关系 
#缩进时不允许使用Tab键,只允许使用空格(各个系统 Tab对应的 空格数目可能不同,导致层次混乱)。 
#缩进的空格数目不重要,只要相同层级的元素左侧对齐即可 
#''#" 表示注释,从这个字符一直到行尾,都会被解析器忽略
#定义可配置的数据:
#对象(map):键值对的集合。
person: 
name: zhangsan 
# 行内写法 
person: {name: zhangsan} 
#数组:一组按次序排列的值
address: 
- beijing 
- shanghai 
# 行内写法 
address: [beijing,shanghai]
**纯量**:单个的、不可再分的值
msg1: 'hello \n world' # 单引忽略转义字符 
msg2: "hello \n world" # 双引识别转义字符 
**参数引用** 
name: lisi 
person: 
name: ${name} # 引用上边定义的name值 

读取配置文件中的数据:

#获取普通配置 
@Value("${name}") 
private String name; 

#获取对象属性 
@Value("${person.name}") 
private String name2; 

#获取数组 
@Value("${address[0]}") 
private String address1; 

#获取纯量 
@Value("${msg1}") 
private String msg1; 

多个环境中使用不同的配置文件

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

其他

配置文件分类

SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就

可以使用application.properties或者application.yml(application.yaml)进行配置。

  1. 默认配置文件名称:application

  2. 在同一级目录下优先级为:properties>yml > yaml

pom文件中的排除部分依赖操作

<dependency>
	<groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <!--排除tomcat依赖-->
    <exclusions>
        <exclusion>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <groupId>org.springframework.boot</groupId>
        </exclusion>
    </exclusions>
</dependency>

SpringBoot不能直接获取在其他工程中定义的Bean

原因

@ComponentScan 扫描范围:当前引导类所在包及其子包

三种解决方案:

1.使用@ComponentScan扫描com.itheima.config包

2.可以使用@Import注解,加载类。这些类都会被Spring创建,并放入IOC容器

3.可以对Import注解进行封装。

标签:知识点,常用,SpringBoot,配置文件,properties,application,file,yml,name
来源: https://www.cnblogs.com/xieshier/p/16368213.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有