好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Springboot 如何关闭自动配置

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

查看更多关于Springboot 如何关闭自动配置的详细内容...

  阅读:25次