Docsify/springboot/chapter2.md
2023-06-13 16:37:18 +08:00

78 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 配置详解
* 可以在任何Component中注入application.properties中的属性内容格式为
```
@Value("${全名称}")
```
* 如果想在编辑配置文件时有提示内容可以在pom.xml中增加此依赖
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
```
* 默认application.properties文件中增加属性内容后注入到实体类可以新建java类通过下面的注解进行注入
```
// 声明该类为组件类spring会自动注入到ApplicationContext中
@Component
// 声明当前类通过config文件注入属性prefix为前缀为指定内容的属性会按照名称自动注入到类属性中
@ConfigurationProperties(prefix = "snapswitch")
```
* 自定义配置文件
* 如果不想将所有配置都放在application.propeties中可以自定义自己的配置文件,然后通过下面的注解,将类和属性文件关联
```
@Component
@PropertySource("classpath:map.properties")
@ConfigurationProperties(prefix = "map")
```
* 可以在application.properties中配置当前环境名称这样程序在读取配置时会根据配置的环境名称自动读取对应的配置
```
# 当前使用环境,程序启动后会自动读取application-dev.properties的配置
# 如果默认配置和dev配置存在相同的配置则以dev为准
# 如果dev存在而默认不环境存在则以dev环境配置为准
# 如果默认环境存在而dev环境不存在则以默认环境配置为准
spring.profiles.active=dev
```
* 命令行打包程序,启动程序,指定参数启动
* 打包命令,进入项目目录后,执行
```
mvn clean install
mvn package
```
* 启动打包的jar
打包后的jar包会生成在target中最终的jar文件就是可执行程序在该jar文件所在目录执行
```
java -jar
jar文件名 例如chapter2-0.0.1-SNAPSHOT.jar
[--参数 例如:--spring.profiles.active=test --my1.age=32]
```
## 非常用参数
* 如果在配置文件中引用另外一个配置文件的值,也可以通过${参数名}的方式引用
```
app.name = appName
app.newName = ${app.name}V1.0
```
此时app.newName的值即为appNameV1.0
* 如果需要在配置文件中使用随机数,可以通过此方式生成
```
# 随机字符串
com.didispace.blog.value=${random.value}
# 随机int
com.didispace.blog.number=${random.int}
# 随机long
com.didispace.blog.bignumber=${random.long}
# 10以内的随机数
com.didispace.blog.test1=${random.int(10)}
# 10-20的随机数
com.didispace.blog.test2=${random.int[10,20]}
```