第一个springboot项目
程序员文章站
2022-04-19 22:45:05
...
依赖:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
</dependency>
</dependencies>
更改端口号 可以通过debug: true查看哪些配置生效
server:
port: 8868
给对象注入值
实体类:
@Component
@ConfigurationProperties(prefix = "person")//对应yaml文件
public class Person {
private String name;
private Date btr;
private Map map;
private List list;
private Dog dog;}
yaml配置文件:
person:
name: 德莉莎
btr: 2020/02/02
map: {k1: 1,k2: 2}
list: [1,2,3]
dog:
name: ${random.uuid} #生产uuid随机字符串
age: ${random.int} #生产随机数字
name-i 可与 nameI 进行松散绑定<驼峰原则>
jsr303数据校验
实体类:
@Component
@ConfigurationProperties(prefix = "userurl")
@Validated //开启数据校验
public class Url {
private String name;
@Email()//数据校验内容为email
private String url;}
yaml配置:
userurl:
name: hahaha
url: [email protected] 此属性进行数据校验在实体类中 JSR303
方式一:多环境指定配置 例:现有环境application.yaml, application-test.yaml, application-dev.yaml
使用"—分割不同环境"
spring:
profiles:
active: test #此处只写-后面的标识,指的是application-test.yaml 默认使用application.yaml
# 方式二:多环境指定配置
# 在同一.yaml文件中使用---分割不同环境配置 例:
---
spring:
profiles: dev #环境名
server:
port: 8080
---
spring:
profiles: test #环境名
server:
port: 8080
---
spring:
profiles: run #环境名
server:
port: 8080
# 指定:在第一个环境中指定,如下:
spring:
profiles:
active: test #此处只写-后面的标识,指的是application-test.yaml 默认使用application.yaml
自动装配的原理:
精髓:
1)、SpringBoot启动会加载大量的自动配置类
2)、我们看我们需要的功能有没有在SpringBoot默认写好的自动配置类当中;
3)、我们再来看这个自动配置类中到底配置了哪些组件; (只要我们要用的组件存在在其中, 我们
就不需要再手动配置了)
4)、给容器中自动配置类添加组件的时候,会从properties类中获取某些属性。
我们只需要在配置文件中指定这些属性的值即可;
xxxAutoConfigurartion:自动配置类;给容器中添加组件
xxxProperties:封装配置文件中相关属性;
上一篇: 注定是不平凡的搞笑笑话
下一篇: 三个救火员