上一篇文章中,在SpringBoot官网上通过直接生成方式,将生成的demo解压后导入到Eclipse开发环境中,其中有个目录src/main/resources中有个application.properties文件,默认是空的,这篇文章就主要是来简单理解application.properties,如何配置参数并使用,例如部分变量设置初始值,MyBatis数据库连接的参数等等。
在SpringBoot框架中,有两种文件配置,一种为application.properties,一种是application.yml,本篇文章主要以application.properties为例来验收对应的DEMO示例,对于yml后缀的配置,大家可以百度下,很简单。
1.两种配置文件的区别(以Mybatis连接MYSQL数据参数配置为例)
在application.properties配置文件中的写法:
spring.datasource.url=jdbc:mysql://localhost:3306/ssm?useSSL=false
spring.datasource.username=root
spring.datasource.password=admin
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
在application.yml配置文件中的写法:
spring:
datasource:
url: jdbc:mysql://localhost:3306/ssm?useSSL=false
username: root
password: admin
driver-class-name: com.mysql.jdbc.Driver
2.获取配置参数(在官网下载的Demo示例下完成下面的示例,对应的输出结果大家可以自己验证)
application.properties配置文件中参数准备:
name=chenyanwu
age=10
1)通过ApplicationContext上下文获取
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
ConfigurableApplicationContext app = SpringApplication.run(DemoApplication.class, args);
// application.properties文件中的name=chenyanwu
System.out.println(app.getEnvironment().getProperty("name"));
}
}
2)通过@Value注解来获取
@RestController
public class HelloWorldController {
@Value("${name}")
private String name;
@Value("${age}")
private int age;
@RequestMapping("/getUser")
public String getUser() {
return "name: " + name + ";age:" + age;
}
}
在地址栏输入:http://localhost:8080/getUser
3)通过@ConfigurationPorperties注解来获取
先创建一个Person类,为这个对象赋值显示(使用了@Value和@ConfigurationPorperties注解)
@Component
@ConfigurationProperties(prefix="user")
public class Person {
@Value("${name}")
private String name;
@Value("${age}")
private Integer age;
private String addr;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + ", addr=" + addr + "]";
}
}
实现代码
@Autowired
private Person person;
@RequestMapping("/getPerson")
public String getPerson() {
return person.toString();
}
在浏览器中输入:http://localhost:8080/getPerson
文章中的示例都是将需要讲解的内容对应的代码进行了粘贴,如果有疑问,可以留言一起讨论!
![](https://i-blog.csdnimg.cn/blog_migrate/745ea4bcdb197c90ee5bc3bb9a8a551a.jpeg)
扫描关注:全栈工程师成长记