在Spring Boot中使用属性文件,可以采用默认的application.properties文件,也可以使用自定义的配置文件,下面让我们一起来看看这两个的使用。
使用默认的application.properties文件
这个配置文件是Spring Boot默认会加载的,所以我们只需要在resource文件夹下面确保有这个配置文件即可,比如我们现在需要配置数据库的信息,在application.properties文件中添加以下配置:
database.driverName=com.mysql.jdbc.Driver
database.url=jdbc:mysql://zzm.zgj.cn:3306/ZzmSpringBootLearn
database.userName=root
database.password=123456
然后创建数据源的bean:
@Data
@Slf4j
@Component
public class DataBaseProperties {
private String driverName;
private String url;
private String userName;
private String password;
@Value("${database.driverName}")
public void setDriverName(String driverName) {
log.warn("DataBaseProperties:{}",driverName);
this.driverName = driverName;
}
@Value("${database.url}")
public void setUrl(String url) {
log.warn("DataBaseProperties:{}",url);
this.url = url;
}
@Value("${database.userName}")
public void setUserName(String userName) {
log.warn("DataBaseProperties:{}",userName);
this.userName = userName;
}
@Value("${database.password}")
public void setPassword(String password) {
log.warn("DataBaseProperties:{}",password);
this.password = password;
}
}
然后启动应用,即可看到如下的日志:
@ConfigurationProperties注解的应用
可以看到,上面的数据库的配置都是以database开头的,这种情况下,我们可以使用@ConfigurationProperties注解来指定配置key的前缀,使得代码更加简洁,如下所示:
@Data
@Slf4j
@Component
@ConfigurationProperties(prefix = "database")
public class DataBaseProperties2 {
private String driverName;
private String url;
private String userName;
private String password;
public void setDriverName(String driverName) {
log.warn("DataBaseProperties2:{}",driverName);
this.driverName = driverName;
}
public void setUrl(String url) {
log.warn("DataBaseProperties2:{}",url);
this.url = url;
}
public void setUserName(String userName) {
log.warn("DataBaseProperties2:{}",userName);
this.userName = userName;
}
public void setPassword(String password) {
log.warn("DataBaseProperties2:{}",password);
this.password = password;
}
}
这样,Spring Boot读取配置文件时,就会以“database” + bean的字段名来匹配对应的值,启动应用后可看到如下日志:
使用自定义的配置文件
如果所有的配置都放在application.properties文件中,那么该文件势必会变得越来越难以维护,所以对于一些配置我们可以单独将其放置到自定义的配置文件中,比如数据库配置,我们可以在reasource文件夹下面自定义一个jdbc.properties文件,内容如下:
database3.driverName=com.mysql.jdbc.Driver
database3.url=jdbc:mysql://zzm.zgj.cn:3306/ZzmSpringBootLearn
database3.userName=root_jdbc
database3.password=123456_jdbc
创建数据源bean:
@Data
@Slf4j
@Component
public class DataBaseProperties3 {
private String driverName;
private String url;
private String userName;
private String password;
@Value("${database3.driverName}")
public void setDriverName(String driverName) {
log.warn("DataBaseProperties3:{}",driverName);
this.driverName = driverName;
}
@Value("${database3.driverName}")
public void setUrl(String url) {
log.warn("DataBaseProperties3:{}",url);
this.url = url;
}
@Value("${database3.userName}")
public void setUserName(String userName) {
log.warn("DataBaseProperties3:{}",userName);
this.userName = userName;
}
@Value("${database3.password}")
public void setPassword(String password) {
log.warn("DataBaseProperties3:{}",password);
this.password = password;
}
}
因为Spring Boot默认加载的是application.properties文件,所以我们需要用注解@PropertySource告诉Spring Boot额外加载我们自定义的配置文件,如图所示:
@Slf4j
@PropertySource(value = {"classpath:jdbc.properties"})
@SpringBootApplication(scanBasePackages = {"com.zzm.iocpropertyfiledefault"})
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class,args);
log.warn("............Application启动成功.............");
}
}
启动应用,即可看到如下日志:
好了,今天就先到这里了,眼过千遍不如手过一遍,赶紧去自己尝试一下吧。。。。拜拜