0
点赞
收藏
分享

微信扫一扫

「Spring Boot 系列」04. Spring Boot配置------获取数据


Spring Boot数据获取

  • ​​1. @Value​​
  • ​​2. @Environment​​
  • ​​3. @ConfigurationProperties​​

简单来说,数据获取就是从application.yml配置文件中拿到相对应的值然后交给对应的实体类对象的属性。

SpringBoot 提供了以下3种注解来获取数据:

  • @Value
  • @Environment
  • @ConfigurationProperties

1. @Value

当我们需要获取配置文件中的某一个数据时,就可以通过 @Value 注解来获取。(使用时标注在实体类的属性上)

​application.yml​

person:
name: lucy
age: 18
hobby:
- basketball
- music
- dance

name1: tony

msg1: 'hello \n springboot!'
msg2: "hello \n SpringBoot!"

@Value("${name1}")
String name1;
@Value("${person.name}")
String name;
@Value("${person.age}")
int age;
@Value("${person.hobby[0]}")
String hobby;
@Value("${msg1}")
String msg1;
@Value("${msg2}")
String msg2;

输出结果如下:

「Spring Boot 系列」04. Spring Boot配置------获取数据_spring boot

2. @Environment

  1. 引入Environment
  2. 通过getProperty方法来获取数据

@RestController
public class HelloController {
@Autowired
private Environment environment;


@RequestMapping("/hello")
public String hello(){
System.out.println("name1:"+ environment.getProperty("name1"));
System.out.println("name:"+ environment.getProperty("person.name"));
System.out.println("age:"+ environment.getProperty("person.age"));
System.out.println("hobby:"+ environment.getProperty("person.hobby[1]"));
System.out.println("msg1:"+ environment.getProperty("msg1"));
System.out.println("msg2:"+ environment.getProperty("msg2"));

return "Hello Spring Boot!";
}
}

获取结果:

「Spring Boot 系列」04. Spring Boot配置------获取数据_spring_02

3. @ConfigurationProperties

@ConfigurationProperties主要作用就是将prefix属性指定的前缀配置项的值绑定到这个JavaBean上,需要和@Component或者@Configuration一起使用才能生效。(使用时标注在实体类上)

​创建一个Person.java的实体类​

@Component
@ConfigurationProperties(prefix = "person")
public class Person {

private String name;
private int age;
private String[] hobby;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public String[] getHobby() {
return hobby;
}

public void setHobby(String[] hobby) {
this.hobby = hobby;
}

@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", hobby=" + Arrays.toString(hobby) +
'}';
}
}

当出现下面的错误时,需要在pom.xml文件中添加下面的依赖(没有就忽略)

「Spring Boot 系列」04. Spring Boot配置------获取数据_配置文件_03

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>

​编写一个控制器方法​

@RestController
public class HelloController {

@Autowired
private Person person;

@RequestMapping("/person")
public Person person(){
return person;
}
}

​启动该项目,访问地址:http://localhost:8081/person​

「Spring Boot 系列」04. Spring Boot配置------获取数据_spring_04

最后
祝大家学的愉快,学的神速。
有帮助的话,各位小伙伴可以点个赞收藏支持下啦!❤️
也欢迎关煮博主,一个正在努力变强的程序员~


举报

相关推荐

0 条评论