运行springboot时显示xxx.proporties不存在,但是项目中包含该文件,请问是哪里配置的问题?
- spring boot默认配置文件在哪个包里
- springboot @Value(“xxx”),取不到xxx就报错?能不能可选的,不配置xxx也不报错?
- springboot项目启动的时候不报错,但是启动不起来是怎么回事?
- SpringBoot的配置文件有哪几种格式?
spring boot默认配置文件在哪个包里
在spring boot中,简单几步,读取配置文件(application.yml)中各种不同类型的属性值:
1、引入依赖:
[html] view plain copy
spring-boot-configuration-processor
2、配置文件(application.yml)中配置各个属性的值:
[plain] view plain copy
myprops: #自定义的属性和值
simpleprop: simplepropvalue
arrayprops: 1,2,3,4,5
listprop1:
- name: abc
value: abcvalue
- name: efg
value: efgvalue
listprop2:
- config2value1
- config2vavlue2
mapprops:
key1: value1
key2: value2
3、创建一个bean来接收配置信息:
[java] view plain copy
@component
@configurationproperties(prefix="myprops") //接收application.yml中的myprops下面的属性
public class myprops {
private string simpleprop;
private string[] arrayprops;
private list
private list
private map
public string getsimpleprop() {
return simpleprop;
}
//string类型的一定需要setter来接收属性值;maps, collections, 和 arrays 不需要
public void setsimpleprop(string simpleprop) {
this.simpleprop = simpleprop;
}
public list
return listprop1;
}
public list
return listprop2;
}
public string[] getarrayprops() {
return arrayprops;
}
public void setarrayprops(string[] arrayprops) {
this.arrayprops = arrayprops;
}
public map
return mapprops;
}
public void setmapprops(map
this.mapprops = mapprops;
}
}
启动后,这个bean里面的属性就会自动接收配置的值了。
4、单元测试用例:
[java] view plain copy
@autowired
private myprops myprops;
@test
public void propstest() throws jsonprocessingexception {
system.out.println("simpleprop: " + myprops.getsimpleprop());
system.out.println("arrayprops: " + objectmapper.writevalueasstring(myprops.getarrayprops()));
system.out.println("listprop1: " + objectmapper.writevalueasstring(myprops.getlistprop1()));
system.out.println("listprop2: " + objectmapper.writevalueasstring(myprops.getlistprop2()));
system.out.println("mapprops: " + objectmapper.writevalueasstring(myprops.getmapprops()));
}
测试结果:
[plain] view plain copy
simpleprop: simplepropvalue
arrayprops: ["1","2","3","4","5"]
listprop1: [{"name":"abc","value":"abcvalue"},{"name":"efg","value":"efgvalue"}]
listprop2: ["config2value1","config2vavlue2"]
mapprops: {"key1":"value1","key2":"value2"}
springboot @Value(“xxx”),取不到xxx就报错?能不能可选的,不配置xxx也不报错?
@Value("${applicaion.t:'abc'}")
private String t;
冒号后面是默认值
springboot项目启动的时候不报错,但是启动不起来是怎么回事?
报错信息是说没有active profile,所以,打开配置
选择
配置好后就可以了。
SpringBoot的配置文件有哪几种格式?
SpringBoot中的配置文件主要有三种格2113式,5261properties、yaml、和xml方式。
- 其中properties格式配置文件后缀是.properties,配4102置项1653为:server.port = 9090
- yaml格式配置文件后缀是.yml,配置项是:server.port: 9090
在SpringBoot中,使用最广泛的配置文件是yaml,yaml之所以流行,除了他配置语法精简之外,还因为yaml是一个跨编程语言的配置文件。
在SpringBoot中,除了yaml之外,properties也比较常用,但是XML几乎不用,看得出来Spring团队非常痛恨XML配置文件!认为它不是一个好的语言。
如果你对常见的配置文件有哪几种格式不熟悉,就去黑马程序员官网视频库看免费视频。