三十六 Java开发学习----SpringBoot三种配置文件解析( 三 )

Environment 对象的 getProperty(String name) 方法获取 。具体代码如下:
@RestController@RequestMapping("/books")public class BookController {        @Autowired    private Environment env;        @GetMapping("/{id}")    public String getById(@PathVariable Integer id){        System.out.println(env.getProperty("lesson"));        System.out.println(env.getProperty("enterprise.name"));        System.out.println(env.getProperty("enterprise.subject[0]"));        return "hello , spring boot!";  }}

注意:这种方式,框架内容大量数据 , 框架使用的比较多,而在开发中我们很少使用 。
3.2.3 自定义对象SpringBoot 还提供了将配置文件中的数据封装到我们自定义的实体类对象中的方式 。具体操作如下:
  • 将实体类 bean 的创建交给 Spring 管理 。
    在类上添加 @Component 注解
  • 使用 @ConfigurationProperties 注解表示加载配置文件
    在该注解中也可以使用 prefix 属性指定只加载指定前缀的数据
  • BookController 中进行注入
具体代码如下:
Enterprise 实体类内容如下:
@Component@ConfigurationProperties(prefix = "enterprise")public class Enterprise {    private String name;    private int age;    private String tel;    private String[] subject;?    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 getTel() {        return tel;  }?    public void setTel(String tel) {        this.tel = tel;  }?    public String[] getSubject() {        return subject;  }?    public void setSubject(String[] subject) {        this.subject = subject;  }?    @Override    public String toString() {        return "Enterprise{" +                "name='" + name + '\'' +                ", age=" + age +                ", tel='" + tel + '\'' +                ", subject=" + Arrays.toString(subject) +                '}';  }}BookController 内容如下:
@RestController@RequestMapping("/books")public class BookController {        @Autowired    private Enterprise enterprise;?    @GetMapping("/{id}")    public String getById(@PathVariable Integer id){        System.out.println(enterprise.getName());        System.out.println(enterprise.getAge());        System.out.println(enterprise.getSubject());        System.out.println(enterprise.getTel());        System.out.println(enterprise.getSubject()[0]);        return "hello , spring boot!";  }}注意:使用第三种方式,在实体类上有如下警告提示
三十六 Java开发学习----SpringBoot三种配置文件解析

文章插图
这个警告提示解决是在 pom.xml 中添加如下依赖即可
<dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-configuration-processor</artifactId>    <optional>true</optional></dependency>【三十六 Java开发学习----SpringBoot三种配置文件解析】

推荐阅读