配置文件和如何添加并获取系统配置
下图中的 application.properties 文件就是全局配置文件,用来改变 Spring Boot 中的默认配置项,命名是 application(默认)。除此之外,还有 application.yml 这种格式的配置文件
创建 application.properties 文件时,会根据不同环境创建 application-dev.properties、 application-test.properties、application-prod.properties 三个配置文件分别用于开发、测试、线 上正式运行环境的配置,而 application.properties 适合任何环境。如果你想测试并读取 application- test.properties 文件中的配置,只需要在全局配置文件中配置 spring.profiles.active=test
,同理开发环境就是设成 dev
要是部署在服务器上运行打包的 jar,可以通过参数设置
java -jar XXX.jar --spring.profiles.active=test
读取 application-test.properties 文件中的配置
还有一种是在代码中指定读取哪个配置文件,即在启动类的 main 方法中改成如下:
public static void main(String[] args) {
SpringApplicationBuilder builder = new SpringApplicationBuilder(QuickStartDemoApplication.class);
builder.application().setAdditionalProfiles("dev");// dev 表示读取开发环境的配置文件
builder.run(args);
//SpringApplication.run(QuickStartDemoApplication.class, args);
}
在 java -jar
可以通过 --spring.config.name=xxx
参数指定配置文件的名字, --spring.config.location=xxx
指定配置文件的位置
比如说要配置运行环境的 ip 地址和端口号,我这里没有额外的 ip,所以只改变端口号。在 application.properties 中设置
server.ip=127.0.0.1
server.port=8081
...
一样在 Controller 控制类中写一个获取当前运行环境的 IP 地址和端口号的方法,运行后在浏览器可查看(注意端口是 8081)
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class hello {
@Value("${server.ip}")
public String serverIp;
@Value("${server.port}")
public String serverPort;
@RequestMapping(value = "/getip")
public String getServerIp() {
return serverIp+":"+serverPort;
}
}
从上面代码可知,可以通过 @Value("${xxx}")
这个注解获取配置文件中的值
还有一种把配置赋值给一个 javabean 的写法,现在还不懂 javabean 是啥,以后再看吧~~~
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论