网站建设资讯

NEWS

网站建设资讯

java-读取配置文件自定义字段(yml、properties)-创新互联

一、概述

在springboot项目配置文件中设置自定义字段,项目代码按需读取,想换重要参数时直接更改配置文件即可,这篇文章说一说配置文件自定义字段的方法。

创新互联公司专注于企业营销型网站建设、网站重做改版、双柏网站定制设计、自适应品牌网站建设、H5页面制作商城网站开发、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为双柏等各大城市提供网站开发制作服务。二、实现方法 方法1 @Value

使用org.springframework.beans.factory.annotation包下的@Value注解读取yml文件里面的字段,代码如下:

yml文件:

server:
  port: 8080

#自定义参数字段
student:
  name: Simon
  age: 23
  sex: male
  height: 185

controller层读取:

@Slf4j
@RestController
@RequestMapping("/test")
public class TestController {

    @Value("${student.name}")
    private String name;

    @Value("${student.age}")
    private String age;

    @Value("${student.sex}")
    private String sex;

    @Value("${student.height}")
    private String height;

    @RequestMapping("/1")
    public Object test(){
        log.info("我叫"+name+",性别是:"+sex+",今年"+age+"岁,我还是个"+height+"cm大高个的帅小伙!");
        return "我叫"+name+",性别是:"+sex+",今年"+age+"岁,我还是个"+height+"cm大高个的帅小伙!";
    }
}

测试结果:

方法2:@PropertySource()、@ConfigurationProperties()

组合使用@PropertySource()、@ConfigurationProperties()两个注解对springboot项目的properties配置文件的的读取。

properties文件:

student.name=simon
student.age=23
student.sex=male
student.height= 185
student.self-assessment=handsome

!!!注意:这里与方法一yml文件采取@Value的方式读取不同,读取properties文件需要建一个读取类(Studentconfig),将properties文件中想读取得字段都注入进去作为该类的属性,再将Student通过@Configuration注解将其当作Bean交给容器管理,需要用的时候将Student整个类注入,在调用get方法得到其属性(即配置文件中的自定义字段)

StudentConfig类

@Configuration
@PropertySource("classpath:application.properties")//读取配置文件
@ConfigurationProperties(prefix="student")//读取节点
@Data
public class StudentConfig {

    private String name;

    private String sex;

    private int age;

    private int height;

    private String selfAssessment;


}

controller层读取(将StudentConfig整个类注入,再使用get方法调用)

@Slf4j
@RestController
@RequestMapping("/test")
public class TestController {

    @Value("${student.name}")
    private String name;

    @Value("${student.age}")
    private String age;

    @Value("${student.sex}")
    private String sex;

    @Value("${student.height}")
    private String height;

    @Autowired
    private StudentConfig student;

   

    @RequestMapping("/1")
    public Object test1(){
        log.info("我叫"+name+",性别是:"+sex+",今年"+age+"岁,我还是个"+height+"cm大高个的帅小伙!");
        return "我叫"+name+",性别是:"+sex+",今年"+age+"岁,我还是个"+height+"cm大高个的帅小伙!";
    }


    
    @RequestMapping("/properties")
    public Object test2(){

        return "我叫"+student.getName()+"" +
                ",性别是:"+student.getSex()+
                ",今年"+student.getAge()+
                "岁,我还是个"+student.getHeight()+"cm大高个的帅小伙!" +
                "我对自己的评价是"+student.getSelfAssessment();
    }

得到结果:

三、使用@value注解读取yml失效的场景及解决办法(下次更新)

四、嵌套读取properties文件的方法(读取类继承HashMap类)(下次更新)

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网站名称:java-读取配置文件自定义字段(yml、properties)-创新互联
文章路径:http://cdweb.net/article/ccdgdp.html