Springboot 如何关闭自动配置

目录
  • Springboot 关闭自动配置
    • 1. 关闭Redis自动配置
    • 2. SpringBoot默认会自动配置数据库
  • 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})

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

SpringBoot 开启关闭自动任务配置

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();
    }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 详解SpringBoot自动配置源码

    一.引导加载自动配置类 @SpringBootApplication注解相当于@SpringBootConfiguration.@EnableAutoConfiguration.@ComponentScan这三个注解的整合 @SpringBootConfiguration 这个注解也使用了@Configuration标注,代表当前是一个配置类 @ComponentScan 包扫描,指定扫描哪些注解 @EnableAutoConfiguration 这个注解也是一个合成注解 @AutoConfig

  • SpringBoot是如何实现自动配置的你知道吗

    目录 SpringBoot启动类: 步骤如下: 总结 SpringBoot启动类: @SpringBootApplication public class CommunityApplication { public static void main(String[] args) { SpringApplication.run(CommunityApplication.class, args); } } 进入@SpringBootApplication源码中: AutoConfigurationI

  • 浅谈什么是SpringBoot异常处理自动配置的原理

    异常处理自动配置 ErrorMvcAutoConfiguration自动配置类自动配置了处理规则,给容器中注册了多种组件 errorAttributes组件,类型为DefaultErrorAttributes.这个组件定义错误页面中可以包含哪些数据 basicErrorController组件,类型为BasicErrorController.处理默认/error路径的请求,new一个id为error的ModelAndView对象来响应页面 error组件,类型为View.响应的是默认错误页面 b

  • Springboot-yaml配置和自动配置原理分析

    目录 版本仲裁中心 自动配置原理 yaml语法 和@PropertySource注解一起使用 和@ImportResource一起使用 配置文件占位符 profile 配置文件的加载顺序 版本仲裁中心 spring dependencies中帮我们依赖了很多常用的jar包, 导入这些jar包不需要版本号 如: <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang

  • SpringBoot 自动配置原理及源码解析

    初始化一个Springboot项目,在主启动类会有这么一个注解:@SpringBootApplication,自动装配的秘密全在主启动类这个注解里面了 点进去一层会发现有三个子注解组成,分别是 @SpringBootConfiguration.@ComponentScan和@EnableAutoConfiguration 接下来分别解释这三个注解在整个自动装配过程中的作用 1.@SpringBootConfiguration 点进去发现它是@Configure,代表当前是一个配置类,意思就是当前

  • SpringBoot开发实战之自动配置

    在介绍SpringBoot的自动配置之前,先了解下注解@Import的使用,SpringBoot的@Enable*开头的注解底层依赖于@Import注解导入一些类,使用@Import导入的类会被Spring加载到IOC容器中,而@Import提供了以下4中用法: 直接导入Bean 通过配置类导入Bean 导入ImportSelector实现类,一般用于加载配置文件的类 导入ImportBeanDefinitionRegistrar实现类 下面来分别介绍这几种用法. 直接导入Bean就比较简单了,

  • springboot 排除redis的自动配置操作

    springboot 排除redis的自动配置 因为要配置一个redis链接,所以将系统自带的配置排除,分别是 RedisAutoConfiguration.class 和 RedisRepositoriesAutoConfiguration.class 两个自动配置类 需要注意的是: RedisRepositoriesAutoConfiguration 对 beanName 叫做 "redisTemplate" 的bean有依赖,需要一并排除 @SpringBootApplicati

  • Springboot 如何关闭自动配置

    目录 Springboot 关闭自动配置 1. 关闭Redis自动配置 2. SpringBoot默认会自动配置数据库 SpringBoot 开启关闭自动任务配置 1.需求 2.解决方案 Springboot 关闭自动配置 springboot通过@SpringBootApplication 下的@EnableAutoConfiguration 实现自动配置,节约了开发者大量时间,但是有可能有些不必要的配置.如果想关闭其中的某一项配置,那应该怎么办呢? 使用@SpringBootApplicat

  • 基于SpringBoot核心原理(自动配置、事件驱动、Condition)

    前言 SpringBoot是Spring的包装,通过自动配置使得SpringBoot可以做到开箱即用,上手成本非常低,但是学习其实现原理的成本大大增加,需要先了解熟悉Spring原理.如果还不清楚Spring原理的,可以先查看博主之前的文章,本篇主要分析SpringBoot的启动.自动配置.Condition.事件驱动原理. 正文 启动原理 SpringBoot启动非常简单,因其内置了Tomcat,所以只需要通过下面几种方式启动即可: @SpringBootApplication(scanBas

  • SpringBoot原理之自动配置机制详解

    目录 前言 Spring配置类 SpringBoot自动配置 自动配置的概念 自动配置的运行机制 加载方式 SpringFactoriesLoader机制 SpringFactoriesLoader如何应用在自动配置中 小结 前言 在当下的java生态里,SpringBoot已经成为事实上的开发标准,绝大多数人现在都是面向SpringBoot编程.SpringBoot是对Spring的进一步封装,整合了分布式系统上下游所需的各种类库和组件,并且实现了开箱即用,而这一切的底层基础就是SpringB

  • Java深入浅出掌握SpringBoot之MVC自动配置原理篇

    Spring Boot 为 Spring MVC 提供了自动配置,适用于大多数应用程序. 官方文档描述: 自动配置在 Spring 的默认值之上添加了以下功能: 从官方描述解析: If you want to keep Spring Boot MVC features and you want to add additionalMVC configuration (interceptors, formatters, view controllers, and other features), y

  • SpringBoot快速通关自动配置应用

    @EnableAutoConfiguration @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @AutoConfigurationPackage @Import(AutoConfigurationImportSelector.class) public @interface EnableAutoConfiguration { String ENABLED_OVERRIDE

  • Springboot @Configuration与自动配置详解

    不知道大家第一次搭SpringBoot环境的时候,有没有觉得非常简单.无须各种的配置文件,无须各种繁杂的pom坐标,一个main方法,就能run起来了.与其他框架整合也贼方便,使用EnableXXXXX注解就可以搞起来了! 所以今天来讲讲SpringBoot是如何实现自动配置的~ @SpringBootApplication: Spring Boot应用标注在某个类上说明这个类是SpringBoot的主配置类,SpringBoot需要运行这个类的main方法来启动SpringBoot应用: 先看

  • 全面解析SpringBoot自动配置的实现原理

    之前一直在用SpringBoot框架,一直感觉SpringBoot框架自动配置的功能很强大,但是并没有明白它是怎么实现自动配置的,现在有空研究了一下,大概明白了SpringBoot框架是怎么实现自动配置的功能,我们编写一个最简单的自动配置功能,大概的总结一下. 一,配置属性类 其实就是值对象注入的方式去配置一些Spring常用的配置,我们编写一个最简单的配置对象. @ConfigurationProperties(prefix = "hello") //@Component //如果这

  • 全网最深分析SpringBoot MVC自动配置失效的原因

    前言 本来没有计划这一篇文章的,只是在看完SpringBoot核心原理后,突然想到之前开发中遇到的MVC自动失效的问题,虽然网上有很多文章以及官方文档都说明了原因,但还是想亲自看一看,本以为很简单的事情,没想到却引发出一个较复杂的问题,请教了很多人都没有得到结果,网上文章也没有写清楚的,最后还是自己搞了很久才弄明白的,此篇主要记录自己的一个分析过程. 正文 引出问题 上面是SpringBoot MVC的自动配置,问题是这样的,当我们需要自己配置MVC时,有三种选择: 实现WebMvcConfig

  • SpringBoot如何实现Tomcat自动配置

    目录 准备工作 我们知道SpringBoot的自动装配的秘密在 org.springframework.boot.autoconfigure 包下的 spring.factories 文件中,而嵌入Tomcat的原理就在这个文件中加载的一个配置类: org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration @Configuration @AutoConfigureOrde

随机推荐