V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
louislivi
V2EX  ›  Java

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

  •  1
     
  •   louislivi · Nov 11, 2019 · 7517 views
    This topic created in 2373 days ago, the information mentioned may be changed or developed.
    • 是这样的我本来是像开发一个关于数据源的一个扩展
    • 但是发现不同的包下@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 文件以及这段代码都仿了一遍但是 都没有正常注入完全不执行。
    6 replies    2020-10-28 16:11:44 +08:00
    chendy
        1
    chendy  
       Nov 11, 2019   ❤️ 1
    1. `@ComponentScan({"*.*.*"})`真实狠人
    2. 建议了解一下 spring-boot 和 spring 的的相关机制
    3. 你少了一个 resources/META-INF/spring.factories
    muskill
        2
    muskill  
       Nov 11, 2019   ❤️ 1
    一楼说的是,在 resources/META-INF/下面建个文件名和后缀名为 spring.factories 的文件,然后把详细的类的引用地址复制上去就行了,多行引用用英文逗号: ' ,\ ' 分开就好了,具体的加载原理可以看这里 => https://qidawu.github.io/2019/01/20/spring-factories/
    louislivi
        3
    louislivi  
    OP
       Nov 11, 2019
    @chendy
    @muskill

    非常感谢,懂了。
    qwerthhusn
        4
    qwerthhusn  
       Nov 11, 2019
    你看那个 jar 包下面的 META-INF 目录下是不是有个 spring.factories 文件
    waterlaw
        5
    waterlaw  
       Dec 8, 2019 via Android
    回归源码, 可以解决 99% 的问题,剩下的 1%看经验。
    utoom
        6
    utoom  
       Oct 28, 2020
    @chendy 完全正解,+1
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3321 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 89ms · UTC 12:35 · PVG 20:35 · LAX 05:35 · JFK 08:35
    ♥ Do have faith in what you're doing.