一、缘起

由于公司把redis相关的配置类,工具类放在了一个类似common的工程里,这样以后肯定不可避免的出现某些项目可能并不需要使用redis,但是还是依赖common里的别的一些类库

所以排除springboot启动加载的一些bean还是有意义的

二、@ComponenScan注解

@ComponentScan注解用来扫描加排除,不加ComponentScan注解,springboot是默认扫描springboot启动类所在的包及其子包,我们现在自己扫描,然后使用@ComponentScan注解的excludeFilters属性用来排除不想扫描的bean。

我的示例是排除redis相关的配置,光排除自己写的配置类时不行的,还需要排除springboot提供的自动配置类,使用@SpringBootApplication的exclude属性把RedisAutoConfiguration.class排除掉,这个时候启动,结果尴尬了,报错一个组件依赖了redisTemplate这个bean。找了挺久,原来还要把RedisRepositoriesAutoConfiguration去掉

代码如下

@SpringBootApplication(exclude = {RedisAutoConfiguration.class, RedisRepositoriesAutoConfiguration.class})
@EnableEurekaClient
@EnableCircuitBreaker
@EnableDiscoveryClient
@EnableTransactionManagement
@ComponentScan(value = "com.aw.phjr", excludeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {RedisConfiguration.class, RedisUtil.class}))
public class RestRpc_Application {

如果想知道配置redis或者其他组件都有哪些自动配置类,可以参考文章:https://www.cnblogs.com/xhy-shine/p/11274906.html

springboot启动的时候排除加载某些bean的更多相关文章

  1. Spring Boot 启动以后然后再加载缓存数据 CommandLineRunner

    实际应用中,我们会有在项目服务启动完成以后去加载一些数据或做一些事情(比如缓存)这样的需求. 为了解决这样的问题,Spring Boot 为我们提供了一个方法,通过实现接口 CommandLineRu ...

  2. nginx反向代理部署springboot项目报404无法加载静态资源

    问题:nginx反向代理部署springboot项目报404无法加载静态资源(css,js,jpg,png...) springboot默认启动端口为8080,如果需要通过域名(不加端口号)直接访问s ...

  3. selenium启动Chrome时,加载用户配置文件

    selenium启动Chrome时,加载用户配置文件   Selenium操作浏览器是不加载任何配置的,网上找了半天,关于Firefox加载配置的多点,Chrome资料很少,下面是关于加载Chrome ...

  4. Java启动工程时,加载固定数据到Map中(不用每次访问数据库)

    如下:启动工程时,加载配置文件的用户名和密码到map中, 通过getKeyByValue()获取即可 import java.util.HashMap; import java.util.Map; i ...

  5. 配置项目启动的时候就加载 servlet

    load-on-startup值为0 就是在项目启动的时候自动加载该servlet

  6. linux服务器tomcat启动时,不能加载项目

    ---恢复内容开始--- 问题描述:tomcat启动时候,能够成功启动但是项目不能加载,查看catalina.out后出现以下的错误 due to a StackOverflowError. Poss ...

  7. 1. spring5源码 -- Spring整体脉络 IOC加载过程 Bean的生命周期

    可以学习到什么? 0. spring整体脉络 1. 描述BeanFactory 2. BeanFactory和ApplicationContext的区别 3. 简述SpringIoC的加载过程 4. ...

  8. 尚硅谷springboot学习13-配置的加载

    配置可以有很多不同的来源,也有不同的加载顺序,下面来具体的看一下 配置文件加载位置 spring boot 启动会扫描以下位置的application.properties或者application. ...

  9. 【Spring源码分析系列】启动component-scan类扫描加载过程

    原文地址:http://blog.csdn.net/xieyuooo/article/details/9089441/ 在spring 3.0以上大家都一般会配置一个Servelet,如下所示: &l ...

随机推荐

  1. Core官方DI剖析(1)--ServiceProvider类和ServiceCollection类

    前段时间看了蒋老师的Core文章,对于DI那一块感觉挺有意思,然后就看了一下Core官方DI的源码,这也算是第一个看得懂大部分源码的框架,虽然官方DI相对来说特别简单, 官方DI相对于其它框架(例如 ...

  2. 【故障公告】推荐系统中转站撑爆服务器 TCP 连接引发的故障

    上周五下午,我们在博客中部署了推荐系统,在博文下方显示“最新IT新闻”的地方显示自动推荐的关联博文.我们用的推荐系统是第四范式的推荐服务,我们自己只是搭建了一个推荐系统中转站(基于 ASP.NET C ...

  3. 本地跑 spark ui 报错

    java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.isAsyncStarted()Z at org.spark_pr ...

  4. 初识Haskell

    在COMP30026 Models of Computation中接触了新的编程语言Haskell,一个之前听都没有听过的语言,在此记录关于Haskell的一些最基本概念. 1.Haskell是一个函 ...

  5. Python_range

    range 当作定义的数字范围列表. 满足顾头不顾腚,可以加步长,与for循环结合使用. 一般使用 for i in range(0, 101): print(i) 结果: #[0,1,2,3,... ...

  6. 样例文件C3DCustomUI无法编译、加载

      Civil 3D 2018版样例文件 C:\Program Files\Autodesk\AutoCAD 2018\C3D\Sample\Civil 3D API\COM\VC++\CustomU ...

  7. Comet OJ - Contest #1

    A:随便怎么暴力. #include<bits/stdc++.h> using namespace std; #define ll long long #define N 25 char ...

  8. 【linux】线上服务器要关注哪些参数

    服务器(nginx/apache): 1.吞吐率. 2.并发连接数. 3.qps. 4.并发连接数详细数据统计,包括读取请求.持久连接.发送响应内容.关闭连接.等待连接. 5.连接线程池利用率. 关系 ...

  9. Python 防止mysql 注入的两种方式

    Python防止sql注入一般有两种方法 1.escape_string   MySQLdb.escape_string(param) 注意:如果报错出现 'ascii' codec can't en ...

  10. Android Bundle详解

    http://blog.csdn.net/cswhale/article/details/39053411 1 Bundle介绍 Bundle主要用于传递数据:它保存的数据,是以key-value(键 ...