Spring项目中混用@Configuration和xml(context:component-scan)配置

如题所述

第1个回答  2022-06-16
目前Spring支持:

在基于maven的ssm项目中,混合使用了<context:annotation-config/>和 @Configuration两种配置bean的方式,在使用junit做单元测试时,必须同时导入两种配置(context)
否则会报错:
java.lang.IllegalStateException: Failed to load ApplicationContext
......
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException NoSuchBeanDefinitionException
@ContextConfiguration内的属性声名:

使用locations表明配置文件xml的位置,classes表明JavaConfig的配置类,但因为内部实现原因不可同时使用这两种方式。
若要正常测试,需要做一个迂回:
在test下,创建一个导入xml配置文件的类,并用@Configuration注解

再统一使用classes包含所有context:

解决方案如上

Spring项目中混用@Configuration和xml(context:component-scan)配置
在基于maven的ssm项目中,混合使用了<context:annotation-config\/>和 @Configuration两种配置bean的方式,在使用junit做单元测试时,必须同时导入两种配置(context)否则会报错:java.lang.IllegalStateException: Failed to load ApplicationContext ...Caused by: org.springframework.beans.factory.NoSuchBeanDefini...

spring 中 Component和@Configuration分别是什么意思
Component 用于将所标注的类加载到 Spring 环境中,需要搭配 component-scan 使用 Configuration 是 Spring 3.X 后提供的注解,用于取代 XML 来配置 Spring

SpringBoot的@Configuration扫盲
@Configuration类可由AnnotationConfigApplicationContext或其Web变种处理,亦能用XML方式引入,与普通Bean类似。需添加ConfigurationClassPostProcessor及其他注解相关的Post Processor。组件扫描可通过在@Configuration上添加@Component注解实现,或@Configuration类自身使用@ComponentScan注解。在@Configuration中使用property...

springboot三大核心注解是什么?
SpringBoot中的三大核心注解包括@Configuration、@EnableAutoConfiguration和@ComponentScan。首先,@Configuration是Spring Boot中的关键,它标志着一个类可以被Spring IoC容器作为bean的定义源。配合@Bean注解,你可以创建一个简单的配置类,无需依赖XML文件,便能实现Spring应用的配置功能。接下来,@EnableAutoCo...

spring 中 Component和@Configuration分别是什么意思
在 spring的配置文件里面只需要加上<context:annotation-config\/> 和<context:component-scan base-package="需要实现注入的类所在包"\/>,可以使用base-package="*"表示全部的类。<context:component-scan base-package=”com.eric.spring”> 其中base-package为需要扫描的包(含所有子包)在接口前面标上...

configuration用法(config的用法)
Spring项目中混用@Configuration和xml(context:component-scan)配置...在springxml这种形式的项目的时候后面都要加上context:component-scanbase-package=com.xxx.xxx,有时候好多注解不起作用,可能就是这个注解。Configuration是配置Spring注释的一种方式,用来代替XML方式。在spring的配置文件里面只需要加上...

springboot三大核心注解是什
SpringBoot中的三大核心注解分别是@Configuration、@EnableAutoConfiguration和@ComponentScan。其中,@Configuration注解的作用至关重要,它标记了一个类可以由Spring IoC容器作为bean的定义源,配合@Bean注解,可以轻松创建简单的配置类,替代传统的XML配置。@Bean注解就像一个指示符,告诉Spring在带有该注解的方法...

Spring5源码分析之@Configuration注解的详解。希望读者能够耐着性子看...
Spring5源码中@Configuration注解详解,让你理解无需XML的Bean创建。在Spring 3.0以后,@Configuration注解的出现,允许开发者在运行时动态创建和初始化Bean,无需依赖XML配置。它实际上标记了@Component元注解,被@ComponentScan扫描并纳入Spring容器管理。使用@Configuration时,Bean的默认名称与方法名称相同,可...

springboot三大核心注解是什么?
springboot三大核心注解是@Configuration,@EnableAutoConfiguration和@ComponentScan。提到@Configuration就要提到他的搭档@Bean,使用这两个注解就可以创建一个简单的spring配置类,可以用来替代相应的xml配置文件。springboot三大核心注解的特点 这个注解类标识这个类可以使用SpringIoC容器作为bean定义的来源,@Bean...

【Spring】简述@Configuration配置类注册BeanDefinition到Spring容...
其中主要分析了 ConfigurationClassPostProcessor 这个 BeanDefinitionRegistryPostProcessor 即Bean定义注册后置处理器,在Spring启动过程中对@Configuration配置类的处理,主要体现在 解析并发现所有配置类,处理配置类的相关逻辑(如配置类上的@ComponentScan、@Import、@Bean注解等),注册其中的BeanDefinition...

相似回答
大家正在搜