主要分为两种:
.properties
.yml
配置文件只能叫做application.properties和application.yml
如果不叫application,运行就不能读取到这个配置文件。
默认情况下,是使用application.properties。
一般情况下,一个项目里面只使用一种格式的配置文件,如果使用了两种,会以.properties为主。
分为两种:
系统配置项:比如server.port
用户自定义配置项:比如myimage.path
# 系统配置项
# 设置端口号
server.port=8080
# 用户自定义配置项
myimage.path=helloworld
系统配置项,一般系统会自动默认读,但是自定义还需要自己去实现读:
使用
@Value("${myimage.path}")
完整例子:
@Controller
@ResponseBody
public class TextController {
@Value("${myimage.path}") //
private String myImage;
@RequestMapping("/sayhi")
public String sayHi(){
return "你好,Spring Boot ->" + myImage;
}
}
properties配置文件的优缺点
优点:
配置文件结构清晰:key=value,适合初学者
缺点:
写法重复很多,比较臃肿,比如配置数据库就需要写很多重复的代码
# MySQL配置项 spring.datasource.url=jdbc:mysql://127.0.0.1:3306/myblog spring.datasource.username=root spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
yml就是YAML的缩写,全称就是Yet Another Markup Language,翻译过来就是“另一种标记语言”。
# key: value
# value前面有空格
string: java
# 自定对象,不要写中文也不要写拼音组合
myobj:
id: 1
name: 张三
age: 18
@ConfigurationProperties("myobj")
@Component //必须要有5大类注解的其中一个
public class User {
private int id;
private String name;
private int age;
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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;
}
}
@RequestMapping("/User")
public class UserController {
@Autowired
private User user;
@PostConstruct
public void doPostConstruct(){
System.out.println(user.toString());
}
}
优点:
1.可读性高,写法简单易于理解,而且写法也很多
2.支持更多的数据类型,比如数组、散列表等
3.支持更多的编程语言,比如PHP,Golang,Python等。
配置mysql:内容简单,但是容错率比较低
# 配置mysql Spring: datasource: url: jdbc:mysql://127.0.0.1:3306/myblog username: root password: 111111 driver-class-name: com.mysql.cj.jdbc.Driver
缺点:
对于初学者不太友好,语法容错率很低