4.Spring Boot 自定义配置

自定义配置

application.yml中我们还可以定义自己需要的配置。举个例子,假如我这里需要配置一个日志埋点的接口,在请求本系统中一些接口时,调用日志埋点接口插入日志。这里可以做一个AOP切面。后续讲解 这个。这里主要讲解配置日志埋点的接口的URL。

这里,我们在application-dev.yml的配置文件中添加log.url=http://localhost:8081/log/insert
在这里插入图片描述
注意:yml文件中:之前必须要有一个空格。

配置文件中配置完成以后,我们直接在测试Controller中获取该值即可。
在这里插入图片描述
此处的@Value注解我们应该很属性。

新建配置文件

如果有很多自定义的配置,方便管理又不想放在application-dev.yml,那么我们可以自定义properties配置文件。但是如果我们自己新建了properties配置文件以后,如何让SpringBoot知道有这个配置文件嘞?
在这里插入图片描述
我们在resources文件夹下面创建自己的conf.properties文件。添加完成配置以后,则需要再启动类中添加@PropertySource注解。
在这里插入图片描述

简化

上述在自定义的配置文件中,如果有很多参数,每一个都使用@Value注解,很麻烦。

假如日志埋点接口的配置如下
在这里插入图片描述
新建LogConfig类
在这里插入图片描述
在这里插入图片描述

package com.demo.myspringboot2.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix = "log")
@Data
public class LogConfig {

    private String url;
    private long timeOut;
    private String contentType;
    private int returnCode;
}

此处需要添加@Component@ConfigurationProperties(prefix = "log")注解。并且配置文件中带-的转为驼峰即可。prefix为前缀,即只匹配前缀为log的属性配置。

此处的@Data为可选注解,本质是一个糖衣炮弹,只是帮我们默认添加构造方法,getter,setter。toString等方法。你可以去掉这么注解,使用IDEA添加也行。

接下来我们只需要在使用的地方引入该类即可。因为加了@Component注解,Spring已经默认帮我们来管理。
在这里插入图片描述
这里就可以使用。

在LogConfig类的上方有一个提示:Spring Boot Configuration Annotation Proessor not found in classpath
因为我在启动类这里添加了@PropertySource注解并指定了配置文件,在运行的测试的过程中是已经测试成功了。并没有在意这个问题。
在这里插入图片描述
搜索了一下这个问题的原因,解决方案如下:
pom.xml文件中添加依赖:

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-configuration-processor</artifactId>
	<optional>true</optional>
</dependency>

这个异常提示就消失了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值