当前位置:首页 > 通信资讯 > 正文

关闭springboot的自动配置(spring boot排除自动配置)

目录
  • Springboot 关闭自动配置
    • 1. 关闭Redis自动配置
    • 2. SpringBoot默认会自动配置数据库
  • 开启关闭自动任务配置流程
    • 1.需求
    • 2.解决方案

Springboot 关闭自动配置

springboot通过@SpringBootApplication 下的@EnableAutoConfiguration 实现自动配置,节约了开发者大量时间,但是有可能有些不必要的配置。如果想关闭其中的某一项配置,那应该怎么办呢?

使用@SpringBootApplication下的exclude参数即可。

举例说明:

1. 关闭Redis自动配置

?
1 @SpringBootApplication(exclude={RedisAutoConfiguration.class })

2. SpringBoot默认会自动配置数据库

如果业务不需要 也可以可以在 pringBootApplication 注解中操作:

?
1 2 3 4 @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class, HibernateJpaAutoConfiguration.class})

注:有多项配置时可以用逗号隔开

开启关闭自动任务配置流程

1.需求

可以根据自己配置的开关,动态的控制springboot含有@Scheduled的定时任务

2.解决方案

1.删除启动类的 @EnableScheduling

2.利用condition进行条件判断

?
1 2 3 4 5 6 public class SchedulerCondition implements Condition { @Override public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) { return Boolean.valueOf(context.getEnvironment().getProperty("com.myapp.config.scheduler.enabled")); //就是yml值 } }

3.进行新的定时任务装配到IOC

?
1 2 3 4 5 6 7 8 9 @Configuration public class Scheduler { @Conditional(SchedulerCondition.class) @Bean(name = TaskManagementConfigUtils.SCHEDULED_ANNOTATION_PROCESSOR_BEAN_NAME) @Role(BeanDefinition.ROLE_INFRASTRUCTURE) public ScheduledAnnotationBeanPostProcessor scheduledAnnotationProcessor() { return new ScheduledAnnotationBeanPostProcessor(); } }

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/qq_24676389/article/details/82777491

如果您对该产品感兴趣,请填写办理(客服微信:xiaoxiongyidong)

为您推荐:

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。