首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Coding
V2EX  ›  Java

不同包下 @Configuration 注解不生效?

  •  1
     
  •   louislivi · 34 天前 · 928 次点击
    这是一个创建于 34 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 是这样的我本来是像开发一个关于数据源的一个扩展
    • 但是发现不同的包下@Configuration等注解无法生效,后查询得知是扫包问题在 Application 文件中添加@ComponentScan({"*.*.*"}) 就可以了,但是我发现druid 等公共依赖都没有这样为什么它们却可以正常运行呢?
    @Configuration
    @ConditionalOnClass(DruidDataSource.class)
    @AutoConfigureBefore(DataSourceAutoConfiguration.class)
    @EnableConfigurationProperties({DruidStatProperties.class, DataSourceProperties.class})
    @Import({DruidSpringAopConfiguration.class,
        DruidStatViewServletConfiguration.class,
        DruidWebStatFilterConfiguration.class,
        DruidFilterConfiguration.class})
    public class DruidDataSourceAutoConfigure {
    
        private static final Logger LOGGER = LoggerFactory.getLogger(DruidDataSourceAutoConfigure.class);
    
        @Bean(initMethod = "init")
        @ConditionalOnMissingBean
        public DataSource dataSource() {
            LOGGER.info("Init DruidDataSource");
            return new DruidDataSourceWrapper();
        }
    }
    
    • 我将 druid 的 pom 文件以及这段代码都仿了一遍但是 都没有正常注入完全不执行。
    5 回复  |  直到 2019-12-08 05:48:05 +08:00
        1
    chendy   34 天前   ♥ 1
    1. `@ComponentScan({"*.*.*"})`真实狠人
    2. 建议了解一下 spring-boot 和 spring 的的相关机制
    3. 你少了一个 resources/META-INF/spring.factories
        2
    muskill   34 天前   ♥ 1
    一楼说的是,在 resources/META-INF/下面建个文件名和后缀名为 spring.factories 的文件,然后把详细的类的引用地址复制上去就行了,多行引用用英文逗号: ' ,\ ' 分开就好了,具体的加载原理可以看这里 => https://qidawu.github.io/2019/01/20/spring-factories/
        3
    louislivi   34 天前
    @chendy
    @muskill

    非常感谢,懂了。
        4
    qwerthhusn   34 天前
    你看那个 jar 包下面的 META-INF 目录下是不是有个 spring.factories 文件
        5
    waterlaw   8 天前 via Android
    回归源码, 可以解决 99% 的问题,剩下的 1%看经验。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   820 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 75ms · UTC 22:22 · PVG 06:22 · LAX 14:22 · JFK 17:22
    ♥ Do have faith in what you're doing.