当前位置: 首页 > 面试题库 >

@ComponentScan具有多个配置类:基于注释的配置

颛孙和悌
2023-03-14
问题内容

根据Spring Doc-

配置组件扫描指令以与@Configuration类一起使用。提供与Spring XML <context:component- scan>元素平行的支持。

在我的spring Web应用程序中,有多个文件被标记@Configuration,以便将@componentbean 注册到spring容器中-

问题 1-我们可以@ComponentScan 在任何 一个@Configuration班级 或所有
@Configuration班级中使用吗?

问题2-

我在spring文件中也看到过

@Configuration
@ComponentScan(basePackageClasses = { MyConfiguration.class })
public class MyConfiguration extends WebMvcConfigurerAdapter {
...
}

为什么在这里扫描配置类本身。

编辑:基本上我用理解@ComponentScan是:扫描并注册立体式豆(EX-
@componant@Controller@Services等..),为什么我们正在注册@Configuration的Bean。


问题答案:

对于您的问题1-

是的,您可以使用@ComponentScanspring容器* 中注册的 任何 配置Bean
来注册Bean。您可以通过以下任何一种方式将Bean注册到容器中:
*

  1. 用于@Configurationrootcontext或中 注册bean dispatchersevletcontext
  2. 将类导入任何@ConfigurationBean(已在容器中注册)。

假设-您有MvcConfig要扫描组件的类-

@ComponentScan(basePackages = {"xxxx","yyyy","zzzz"})
@Configuration
public class MvcConfig  {
....
}

MvcConfig在容器中注册,您必须执行以下操作:

要么

new AnnotationConfigWebApplicationContext().register(MvcConfig.class);

要么

new AnnotationConfigWebApplicationContext().register(AnotherConfig.class);

@Configuration
@Import({MvcConfig.class})
public class AnotherConfig  {
....
}

对于您的问题2-

在这里,spring不仅要注册MyConfiguration.class,还要注册MyConfiguration定义的包中存在的所有组件类。



 类似资料:
  • 问题内容: 在最近我从事的一些大型项目中,选择其中一种(XML或注释)似乎变得越来越重要。随着项目的发展,一致性对于可维护性非常重要。 我的问题是:与基于注释的配置相比,基于XML的配置有哪些优势?与基于XML的配置相比,基于注释的配置有哪些优势? 问题答案: 注释有其用途,但它们不是杀死XML配置的灵丹妙药。我建议将两者混合! 例如,如果使用Spring,则将XML用于应用程序的依赖注入部分是完

  • 我最近的目标是构建一个Spring Boot应用程序,但不需要任何XML配置文件(或尽可能少),因此我希望避免使用一些XML文件(即web.XML),特别是对于一些bean定义部分。 更难的部分来了。 我想使用@AutoWired注释将一个SessionFactory bean注入到类中,但每次尝试启动应用程序时,我都得到: unsatisfiedDependencyException:创建名为“

  • 我最近在使用作为Spring Boot applications(v2.2)开发的微服务,在我的公司,我们使用Keycloak作为授权服务器。我们之所以选择它,是因为我们需要复杂的策略、角色和组,我们还需要用户托管授权(UMA)来在用户之间共享资源。 有没有一种方法可以在控制器级别使用某种注释?类似于下面的伪代码:

  • 从Spring 2.5开始,可以使用annotations配置依赖注入。 因此,不是使用XML来描述bean连接,而是可以通过在相关的类,方法或字段声明上使用注释将bean配置移动到组件类本身。 在注入XML之前执行注释注入。 因此,对于通过两种方法连接的属性,后一种配置将覆盖前者。 默认情况下,Spring容器中未打开注释接线。 因此,在我们使用基于注释的布线之前,我们需要在Spring配置文件

  • 问题内容: 最近,在我们的团队中,我们开始讨论在代码中使用spring注释来定义spring依赖关系。当前,我们正在使用context.xml定义依赖项。您能给我一些关于这两种方法的线索吗?何时更好地使用? 编辑:我知道这似乎是对更一般的问题的重复问题,但是我对仅依赖注入的注解和配置的影响感兴趣,我相信与一般问题相比,注解和配置的影响会有所不同。 问题答案: 在阅读了此处的一些相关文章并在团队中进

  • 我是Spring的新手,尝试将基于xml的配置转换为注释basic。我读了这个教程。它与基于xml的配置完美结合。MVCSpring积垢教程 现在我将所有基于xml的配置转换为注释,但我有一个问题。我几乎把我读到的东西都读了一遍,但我没有解决这个问题。 组织。springframework。豆。工厂BeanCreationException:创建名为“personController”的bean时

  • 当我使用Spring framework时,我经常看到2个术语基于Java和基于注释的配置/自动生成。 如果它们不一样,你能告诉我它们之间有什么不同吗?

  • 我正在尝试使用Enunciate为我的REST API生成静态文档,该API是使用Spring MVC 3.2用Java编写的。Enuncite网站声称,它通过使用以下特定插件来支持Spring: http://enunciate.codehaus.org/module_spring_app.html 在查看配置选项时,看起来我应该导入一个spring applicationContext.xml