在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元起,快前往官网查看详情吧