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

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

Spring Boot数据获取


简单来说,数据获取就是从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;

输出结果如下:

image.png


2. @Environment

引入Environment

通过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!";
    }
}

获取结果:

image.png

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文件中添加下面的依赖(没有就忽略)

image.png

<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

image.png

相关文章
|
6天前
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
22 4
|
3天前
|
Java API 数据库
Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐
本文通过在线图书管理系统案例,详细介绍如何使用Spring Boot构建RESTful API。从项目基础环境搭建、实体类与数据访问层定义,到业务逻辑实现和控制器编写,逐步展示了Spring Boot的简洁配置和强大功能。最后,通过Postman测试API,并介绍了如何添加安全性和异常处理,确保API的稳定性和安全性。
10 0
|
2天前
|
druid Java Maven
|
4天前
|
Java BI 调度
Java Spring的定时任务的配置和使用
遵循上述步骤,你就可以在Spring应用中轻松地配置和使用定时任务,满足各种定时处理需求。
24 1
|
9天前
|
Java 测试技术 开发者
springboot学习四:Spring Boot profile多环境配置、devtools热部署
这篇文章主要介绍了如何在Spring Boot中进行多环境配置以及如何整合DevTools实现热部署,以提高开发效率。
27 2
|
9天前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
25 1
|
5月前
|
XML 安全 Java
深入实践springboot实战 蓄势待发 我不是雷锋 我是知识搬运工
springboot,说白了就是一个集合了功能的大类库,包括springMVC,spring,spring data,spring security等等,并且提供了很多和可以和其他常用框架,插件完美整合的接口(只能说是一些常用框架,基本在github上能排上名次的都有完美整合,但如果是自己写的一个框架就无法实现快速整合)。
|
2月前
|
缓存 Java Maven
Java本地高性能缓存实践问题之SpringBoot中引入Caffeine作为缓存库的问题如何解决
Java本地高性能缓存实践问题之SpringBoot中引入Caffeine作为缓存库的问题如何解决
|
5月前
|
Java 数据安全/隐私保护
Neo4j【付诸实践 01】SpringBoot集成报错org.neo4j.driver.exceptions.ClientException:服务器不支持此驱动程序支持的任何协议版本(解决+源代码)
Neo4j【付诸实践 01】SpringBoot集成报错org.neo4j.driver.exceptions.ClientException:服务器不支持此驱动程序支持的任何协议版本(解决+源代码)
291 1
|
1月前
|
Java 应用服务中间件 开发者
深入探索并实践Spring Boot框架
深入探索并实践Spring Boot框架
35 2