当前位置: 首页 > 知识库问答 >
问题:

Spring的basePackages扫描如何从不同的Maven模块检索我的类?

顾亦
2023-03-14
@EnableWebMvc
@Configuration
@ComponentScan(basePackages={"entities", "services", "controllers"})
public class DispatcherConfig {

}

我不明白的是包装是如何工作的。我现在脑子里全是意大利面。当Spring转到@componentscan行并看到“实体”和“服务”时,它看到的获取这些类的结构是什么?

我的包裹结构很简单。在服务模块中,我只有src/main/java/entities和src/main/java/services

这里的幕后发生了一些我不明白的事情。Spring怎么会聪明到知道这一点?我甚至不必列出完整的包,即myproject/src/main/java/entities或类似的东西?

共有1个答案

云捷
2023-03-14

假设@componentscan使用字符串数组,如下所示:

@ComponentScan({"com.package.first","com.my.package.second"})

当您只在一个字符串中提供多个包名时,Spring将其解释为一个包名。

这个帖子可能会有帮助。

 类似资料:
  • 我有两个Maven模块。第一个,叫做“应用程序”,包含了只包含以下行的Application类: 在同一个Maven模块和包中,我有一个,它使用,然后使用下面描述的其他Maven模块的组件。 另一个名为“model”的Maven模块包含组件(crud存储库、实体等)。所有这些类都与第一个Maven模块()位于相同的包结构下,但都位于该模块的子包中,比如,等。 所以,流程是这样的: Maven模块包

  • 上面的getMetadataReader方法调用最终以 它使用ASM ClassReader访问类和注释元数据。这显然找不到ByteBuddy放置的@Entity注释。 我不确定我是否应该以某种方式将Classloader链接到Bytebuddy中,或者重写Springs SimpleMetadataReader,以使我自己的实现得到Bytebuddy的支持。 让我知道如果你想要更多的实现细节。我

  • 我想了解一些关于Spring的东西。我正在尝试配置它,但是有些东西我不明白,因为Spring似乎不认识我的控制器。 这是我的web.xml 这就是servlet 控制器:

  • 我对java和一般的编码都很陌生,我正试图弄明白如何让这个游戏在学校的一个项目中发挥作用。它的意思是让你输入一个月,然后它会要求你选择一天,但是当我输入一个月时,它总是说这是一个无效的输入,这是我希望它做的,当它不是一个有效的月份。我做错了什么?

  • 问题内容: 我正在尝试为我的程序设置一个GUI,并使它大部分都能正常工作。但是,我希望能够创建一种与Scanner的nextLine()类似的方法。它等待我的JTextField输入,然后返回它。这是我的GUI的当前代码: 我希望能够这样称呼它: 或类似;我已经将gui变量设置为新的Gui()。 通过搜索,我发现它可能涉及DocumentListener或ActionListener或两者都涉及。

  • 我在使用OpenApi和Spring定义API时遇到了一些问题。我正在使用此依赖项: 我的问题是,我想在不同的Api响应上定义一个@模式,但在每个响应中使用不同的描述和示例。 现在我有一个这样的回答: 还有其他类似的反应。。。 因此,我有三个不同描述和示例的对象“Balance”,但当它生成文档时,使用该对象的所有响应和字段都采用相同的描述和示例。 我已经看到,在生成的文件中,我将所有这些项目都带