湛蓝之海 发表于 2021-12-26 13:56:46

Springboot 如何关闭自动配置

这篇文章主要介绍了Springboot 如何关闭自动配置的操作,具有很好的开车价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
目录

[*]Springboot 关闭自动配置

[*]1. 关闭Redis自动配置
[*]2. SpringBoot默认会自动配置数据库

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

[*]1.需求
[*]2.解决方案


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

1. 关闭Redis自动配置


@SpringBootApplication(exclude={RedisAutoConfiguration.class})

2. SpringBoot默认会自动配置数据库
如果业务不需要 也可以可以在 pringBootApplication 注解中操作:


@SpringBootApplication(exclude = {
DataSourceAutoConfiguration.class,
DataSourceTransactionManagerAutoConfiguration.class,
HibernateJpaAutoConfiguration.class})
注:有多项配置时可以用逗号隔开

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

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

2.解决方案
1.删除启动类的 @EnableScheduling
2.利用condition进行条件判断


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


@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();
    }
}
以上为个人经验,希望能给大家一个参考,也希望大家多多支持CodeAE代码之家。
原文链接:https://blog.csdn.net/qq_24676389/article/details/82777491

http://www.zzvips.com/article/215505.html
页: [1]
查看完整版本: Springboot 如何关闭自动配置