springboot-3.资源文件属性配置

springboot入门篇集合

  • springboot-1.简约版创建第一个应用
  • springboot-2.利用接口返回数据(json)
  • springboot-3.资源文件属性配置
  • springboot-4.模板引擎freemarker&thymeleaf
  • springboot-5.全局异常捕获
  • springboot-6.整合Mybatis
  • springboot-7.快速上手redis

前言

为什么要进行资源文件属性配置呢?可以想象成就是一个设置文件。比如设置好数据库密码.port端口后,在其他地方只需要用名字引用即可。
举个例子:
我们设置以下项目的持有者名称为ericam

demo:
    name: "ericam"

那么在其他地方只需要引用name名称即可,然后如果整个项目需要多次引用,后期我们只需要在一个配置文件里更改下名称即可,不必多次操作。
 
Spring Boot可使用注解的方式将自定义的properties文件映射到实体bean中,比如application.properties文件 或者application.yml
springboot-3.资源文件属性配置_第1张图片

正文

(1)首先,在pom文件中添加依赖项

spring-boot-configuration-processor

springboot-3.资源文件属性配置_第2张图片
(2)修改application.yml文件,添加如下内容

demo:
  name: "ericam"

(3)新建一个Resource.java文件
springboot-3.资源文件属性配置_第3张图片

package cn.ericam.nndemo;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
@Configuration  //使用配置注解 ,表示这个类是配置文件
@ConfigurationProperties(prefix = "demo") //prefix 指定配置文件里的前缀
@PropertySource(value = "classpath:application.yml")
public class Resource {
    private String name;

    public String getName() {
        return name;
    }

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

ps:ConfigurationProperties是一个注解,可以标注在一个Class上,这样Spring Boot会从Environment中获取其属性对应的属性值给其进行注入。
(4)接下来,我们开始引用一波尝试,打开helloController.java文件

@RestController
public class helloController {
    @Autowired
    private Resource resource;    //构建一个Resource类对象,通过autowired自动赋值
    @RequestMapping("/getR")
    public jsonResult gr()
    {
        Resource b = new Resource();   
        BeanUtils.copyProperties(resource,b); //将resource的值拷贝复制给b
        return  jsonResult.ok(b);
    }
}

ps:@Autowired 注释可以对类成员变量、方法及构造函数进行标注,完成自动装配。
通过 @Autowired的使用来消除 set、get方法。

打开浏览器

springboot-3.资源文件属性配置_第4张图片
application.yml文件中重要属性

server:
    port: 8080       #端口
    servlet:
        context-path: /demo   #配置路径,此后访问http://localhost:****/demo/****

(日后项目中继续补充)

你可能感兴趣的:(springboot)