springboot @value启动报错_打造一个 Spring Boot 注解启动控制开关

本文介绍了如何在Spring Boot中使用@Value启动时避免报错,并探讨了通过ConditionalOnProperty注解来控制开发环境中特定功能的启动与否。示例中,展示了如何在application.yml中配置以控制jobs分布式任务调度组件是否启用。此外,还提及了Linux的nohup命令和Redis缓存的相关内容。
摘要由CSDN通过智能技术生成

#  场景说明

https://gitee.com/baomidou/jobs

jobs 分布式任务调度组件 ,  任务调度中心启动注解 EnableJobsAdmin 默认注解上某个配置类对应 starter 启动 Import 相关 AutoConfiguration 类将会自动导入相关 Bean 注入到 Spring 容器, 启动类如下

dbcf5e84c9ceeb7acc6dcd620f2ce2fd.png

那么问题来了,如果我想设置开发环境阶段不启动怎么办?是否可以控 ?

答案是肯定的,万能的 spring boot 是支持的就是 ConditionalOnProperty 注解,注解属性说明如下

@Retention(RetentionPolicy.RUNTIME)@Target({ ElementType.TYPE, ElementType.METHOD })@Documented@Conditional(OnPropertyCondition.class)public @interface ConditionalOnProperty {  /**     * 数组,获取对应property名称的值,与name不可同时使用   */  String[] value() default {};  /**   * property 名称的前缀,可有可无   */  String prefix() default "";  /**   *  数组,property完整名称或部分名称   * (可与prefix组合使用,组成完整的property名称),与value不可同时使用   */  String[] name() default {};  /**   *  获取到的属性值与havingValue给定的值是否相同,相同才加载配置   */  String havingValue() default "";  /**   *  缺少该property时是否可以加载。如果为true   *  没有该property也会正常加载;反之报错   */  boolean matchIfMissing() default false;}

例如,启动前缀为 jobs 属性 enabled 值非 true 不执行,无配置接受到 matchIfMissing=true 条件执行:

c2392a4f62f0fa05fe083177e006626a.png

在 application.yml 使用:

698bae96a29b37e34a9292b48d439811.png

值得注意的是如果配置如上 false 下面的 JobsConfig 类中注入的 Bean 不会执行

27d1cdd3df6b68d5af01f4c467c62e44.png

谈谈 Linux 命令 nohup 及符号 & 作用

Redis 高性能缓存解密

Spring Cloud  踩坑 403 之 CORS

feb017a2ea32447c1d44300ee51324e3.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值