崛起于Springboot2.0.X之集成Spring Configuration Processor(48)

      序言:对自己Springboot项目有各种小小洁癖感的同学可以看过来,这个针对Springboot任何版本,虽然标题是2.0.x。

      接下来讲说的是Springboot创建的时候,选择图下这个依赖的作用,文件处理器,Spring Configuration Processor,它的作用和 主配置文件application.properties或者application.yml里面的spring.profiles.active有着相似的作用,但是不同的是,使用spring.profiles.avtive,你添加的其他配置文件命名格式只能是application-{name}.properties或者application-{name}.yml,而使用文件处理器这个依赖,则对文件名没有任何约束。

    739d92bbdfad8a3d0c62f3fb3cc2c5482d4.jpg

1、pom依赖
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>
2、创建其他配置文件
love.you=aoxin
love.me=mdxl
love.they=78

    这个配置文件先命名为 application-haha.properties,然后如果想要使用里面的属性值的时候,只能在application.propertiesz中加入

spring.profiles.active=haha

      这样,我们才能在代码类中获取到该值,如下:

@RestController
public class DockerController {

    @Value("${love.you}")
    private String name;

    @GetMapping("/test1")
    public String test1(){
        return name;
    }
}
3、文件处理器

      使用文件处理器,我们可以创建任意名字的配置文件,如 haha.properties,同时也不需要在application配置文件中引入,我们可以直接使用,不过有一个前提就是在引入它的属性值的类上,加上注解 @PropertySource("classpath:haha.properties"),这样我们依旧可以使用。把之前active的引入删除。

@RestController
@PropertySource("classpath:haha.properties")
public class DockerController {

    @Value("${love.you}")
    private String name;

    @GetMapping("/test1")
    public String test1(){
        return name;
    }
}
4、为什么使用它?

    那么看上去也并没有区别么,倒是有一点费劲的感觉,其实不然,因为有些配置文件里面的属性,有些开发工程师是直接想在配置类中使用,不想在主配置文件spring.profiles.active依赖,而这种属性值往往也不分开发环境、仿真环境和线上环境的,所以会有一小部分开发工程师乐意去使用它。

 

 

转载于:https://my.oschina.net/mdxlcj/blog/3098764

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值