springBoot配置文件

配置文件的读取

把一些信息写在yml配置文件,就需要通过代码读取配置文件中的参数 例如:

以下是几种读取配置文件信息的方法:

@ConfigurationProperties+@EnableConfigurationProperties

js 复制代码
@Data //生成get,set方法
@Component //表是这是Spring的组件
@ConfigurationProperties(prefix = "prefix") //读取的配置的前缀是 prefix
@EnableConfigurationProperties //和@ConfigurationProperties注解搭配使用,表示将配置文件的信息读取到@ConfigurationProperties注解标注的类
public class Method1 {
    private String paramName;
}

@Value

js 复制代码
@Data //生成get,set方法
@Component //表是这是Spring的组件
public class Method2 {

    @Value("${prefix.paramName}") //表示读取的参数为 prefix 层级下的 paramName 对应的参数
    private String param;
}

验证是否读取到

js 复制代码
@RestController
public class BiuController {

    @Autowired
    private Method1 method1;

    @Autowired
    private Method2 method2;

    @GetMapping("/method1")
    public String method1(){
        return method1.getParamName();
    }

    @GetMapping("/method2")
    public String method2(){
        return method2.getParam();
    }
}

浏览器访问 localhost:9696/method1 和 localhost:9696/method2 (注:如果没有设置端口,访问8080)

配置文件的选择

一个项目肯定会有开发环境和生产环境,这两个环境的各种配置会有不一样,例如数据库的地址以及账号密码,这个时候我们就需要准备两个不同的配置文件

SpringBoot默认生效的配置文件是application.yml

在生产中我们需要生效的配置文件为application-prod.yml

在开发中我们需要生效的配置文件是applicaton-dev.yml

以下是几种选择配置文件的方法:

使用 application.yml文件选择

在application.yml 配置生效的配置文件为 prod

重新启动项目,用浏览器访问localhost:9696/method1 和 localhost:9696/method2

jar包运行时命令行添加参数

js 复制代码
//选择生效的配置文件为application-dev.yml
java -jar your-app.jar --spring.profiles.active=dev

如果是在idea运行项目,则按照以下步骤添加运行参数

重新启动项目,用浏览器访问localhost:9696/method1 和 localhost:9696/method2

配置生效了,而且当用application.yml指定生效的配置文件为prod,用命令行指定生效的配置文件为dev,第二种方法是优先于第一种方法的

相关推荐
Zane1994几秒前
JMM 与 happens-before:一次搞懂 Java 内存模型
java·后端
用户298698530148 分钟前
在线将 Word 文档转换为 TXT 格式:快速免费的方法
人工智能·后端
shepherd11115 分钟前
别再把 MCP 当成大模型的“手脚”:LLM 并不会直接调用 MCP
后端·ai编程·mcp
SimonKing16 分钟前
别再写 setter 了!MapStruct Plus vs MapStruct,谁才是 Bean 转换的真神?
java·后端·程序员
名字还没想好☜16 分钟前
Go for-range 循环变量陷阱:goroutine 里全打印同一个值(Go 1.22 前后差异)
开发语言·后端·golang·go
AI多Agent协作实战派19 分钟前
AI多Agent协作系统实战(二十五):Spring Boot静态资源同步:为什么你改了代码但线上还是旧的?
后端
码栈研说20 分钟前
Go 语言大白话入门 12 - JSON:工作里最常见的数据格式
后端·程序员
达达尼昂21 分钟前
AI Native 工程实践:如何为 Claude 5 设计更有效的上下文
android·人工智能·后端
用户29307509766923 分钟前
从零搭建 AI 日记助手:Milvus 向量数据库 + RAG 实战
后端
zguigo23 分钟前
结合苍穹外卖对redis进行总结和教学
后端