在基于springboot框架编写java程序时,配置文件可以选择放在jar包内或者jar包外,相比于普通的java程序,springboot可以直接自动读取配置文件,而不需要额外的读取配置文件的代码在。
一、配置文件放在jar包内:
以intellij idea为例,只需要将配置项定义在${project根目录}/src/main/resources/application.properties即可;
二、配置文件放在jar包外:
- 在jar包的同级目录下建一个config文件夹,然后把application.properties放到这个文件夹下;
- 直接把application.properties放到jar包的同级目录;
- 在classpath下建一个config文件夹,然后把application.properties放进去;
- 是在classpath下直接放配置文件。
这4种方式的优先级是从1到4依次降低,放在${project根目录}/src/main/resources/下的配置文件优先级最低,最终生效的是高优先级。
三、配置项加载方法
springboot中使用属性注入的方式将配置文件application.properties中的配置项加载到项目中,使用@Value完成注解,不需要在业务代码中添加读写配置文件的代码:
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@Service
public class ZkUtil implements InitializingBean {
@Value("${zookeeper.quorum}")
private String zookeeperQuorum;
@Value("${tenant:@null}")
private String tenantName;
// ......
}
在应用jar的同级目录config下有application.properties,其中包含如下配置项:
zookeeper.quorum=localhost:2181
tenant=datalake
网友评论