【问题标题】:How to understand the annotation @ComponentScan work when wiring Bean without application.xml?在没有application.xml的情况下连接Bean时如何理解注释@ComponentScan的工作?
【发布时间】:2020-12-31 22:30:46
【问题描述】:

1、当我的字典树喜欢这些时,出现“@EnableAsync annotation metadata was not injection”的错误。

2,但是当我的字典树喜欢这样的时候,错误就不会发生了。

3,当我用application.xml连接Bean时,字典树喜欢第一段,但错误也没有发生。

所以我如此确认的是,@ComponentScan 在没有 application.xml 的情况下连接 Bean 时的工作?

【问题讨论】:

  • 请不要将代码添加为图像,因为它们完全不可读。

标签: spring ioc-container component-scan


【解决方案1】:

当一个类不包含包声明时,它被认为在“默认包”(src.main.java)中。指某东西的用途 通常不鼓励使用“默认包”,应避免使用。 它可能会导致使用 Spring Boot 应用程序的特定问题 @ComponentScan、@ConfigurationPropertiesScan、@EntityScan 或 @SpringBootApplication 注释,因为每个 jar 中的每个类 被读取。

Spring Boot 支持基于 Java 的配置。虽然有可能 要将 SpringApplication 与 XML 源一起使用,我们通常建议 您的主要来源是单个 @Configuration 类。通常情况下 定义 main 方法的类是作为主要方法的良好候选者 @配置。

这是第一次制作spring应用时的经典错误,最好将所有类放在一个包中,永远不要将你的类放在“默认”(src.main.java)包中。

从“2. 构建你的代码”一章到“3. 配置类”阅读更多内容:

https://docs.spring.io/spring-boot/docs/current/reference/html/using-spring-boot.html#using-boot-configuration-classes

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-30
    • 2018-01-31
    • 2013-05-26
    • 1970-01-01
    • 1970-01-01
    • 2013-01-13
    • 1970-01-01
    • 2022-11-10
    相关资源
    最近更新 更多