Spring junit做单元测试时,报Failed to load ApplicationContext错误
发表于|更新于|Java
|总字数:203|阅读时长:1分钟|浏览量:
在做单元测试模块时,提示Failed to load ApplicationContext,经过查看,发现是测试单元中的一个注解指向了一个不存在的bean,该bean在applicationContext-web.xml中,而我们的代码的注解是
1 | @RunWith(SpringJUnit4ClassRunner.class) |
解决办法就是将这个bean的定义写在applicationContext-test.xml中。
当然这种错误也存在其他原因,比如:项目引用了其他模块,并且有相同名称的Spring配置文件,这也会导致Failed to load ApplicationContext这个错误。
1 | @ContextConfiguration(locations = { "classpath:spring*.xml", "classpath:mybatis.xml", "classpath:spring-redis.xml" }) |
解决方案
1 | @ContextConfiguration(locations = { "classpath*:spring*.xml", "classpath*:mybatis.xml", "classpath*:spring-redis.xml" }) |
当然,偷懒也是可以滴,比如:
1 | @ContextConfiguration(locations = { "classpath*:*.xml"}) |
文章作者: Charles
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 码农笔记!
相关推荐

2020-09-01
Kerberos、Impala、Druid的配合使用
本篇介绍了如何在开启Kerberos认证的情况下,数据库连接池Druid和Impala的配合使用。 背景由于生产环境开启了Kerberos的认证限制,原来可直接使用Druid连接池的方式便不可用了,需要重写Druid获取连接的逻辑,在其创建Impala连接时加入Kerberos认证的功能。 实现方式ImpalaDruidDataSource.class123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120import com.alibaba.druid.pool.DruidDataSource;import com.alibaba.d...

2020-07-15
利用 Spring 的类型转换器注入List属性
在Spring应用程序中,通常会为每个Spring容器(或ApplicationContext)配置一个ConversionService实例。 Spring会选择该ConversionService,然后在框架需要执行类型转换时使用它。如果未向Spring注册任何ConversionService,则使用原始的基于PropertyEditor的系统。 例如,在项目中配置Redis、ElasticSearch时,通常这些服务都是集群部署的。在创建这些bean的实例时,需要将多个节点都配置到项目的properties文件中,通常都如下所示: 12spring.elasticsearch.rest.ip-address=10.254.5.102:9200,10.254.5.107:9201,10.254.5.108:9201redis.cluster.nodes=10.10.100.197:7000,10.10.100.197:7001,10.10.100.197:7002,10.10.100.197:7003,10.10.100.197:7004,10.10.100.197:7...

2015-04-10
Java8新特性
由于Java8作为工作中最常用的版本,今天重新梳理一下JAVA 8的所有新特性。 Interface在 Java 8 之前,接口(interface)是非常“纯粹”的:它只能包含抽象方法(abstract methods),即只有声明,没有实现。而且在Interface修改的时候,实现它的类也必须修改。为了解决这个问题,Java 8 对接口做出了重大变革,最核心的新特性是引入了 默认方法(Default Methods) 和 静态方法(Static Methods)。这样就可以又方法体,实现类也不必重写此方法。 一个 interface 中可以有多个方法被它们修饰,这 2 个修饰符的区别主要也是普通方法和静态方法的区别。 default修饰的方法,是普通实例方法,可以用this调用,可以被子类继承、重写。 static修饰的方法,使用上和一般类静态方法一样。但它不能被子类继承,只能用Interface调用。 下面通过一个例子展示下这两个新特性的用法: 12345678910111213141516171819public interface InterfaceA {...

2025-10-01
红黑树
今天复习一下红黑树。 什么是红黑树 红黑树的插入 红黑树的删除 红黑树代码实现 什么是红黑树红黑树本质上是一棵自平衡的二叉查找树(BST),其时间复杂度为$O(\log n)$)。红黑树之所以能够自动保持平衡,是因为它给每个节点都涂上了红色或者黑色。并且所有节点必须遵循以下五点规则(满足二叉树的条件:左子树 <= 根节点 <= 右子树 的基础上): 节点非红即黑:每个节点,要么是红色的,要么是黑色的。 根节点永远是黑色:最顶端的根节点必须是黑色的。 叶子节点都是黑色:树最底端的那些看不见的空节点(null),都算作黑色。 红节点不相邻:红色节点的儿子和父亲绝对不能是红色,也就是不允许有连续的红色。 黑高相等:从任意一个节点出发,走到它最下面的任何一个最底端的叶子节点,路径上的黑色节点数量必须完全相同,这是最主要的。 记忆口诀:左根右、根叶黑、不红红、黑路同。 如何保持平衡当新增数据时,新数据默认都是红色的。(因为红节点不会破坏黑高相等)。 但如果新节点的父节点也是红色的,那就违反了红节点不相连的规范,这时候红黑树就会启动自动化防御机制,组合使用...

2023-12-14
SpringBoot升级Tomcat版本
由于SpringBoot默认依赖得Tomcat版本经常被检测出安全漏洞,并且项目支持最高已经升级到2.7.16,所以只能单独升级Tomcat的版本来避免安全漏洞了。 新增Tomcat依赖在父模块中的pom.xml中新增如下内容 123<properties>+ <tomcat.version>9.0.84</tomcat.version></properties> 在dependencyManagement中新增如下依赖 1234567891011121314151617181920<dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-core</artifactId> <version>${tomcat.version}</version></dependency><depen...

2018-03-06
MyBatis的Param注解对JavaBean的使用方法
在使用MyBatis时,如果参数列表中传入的是一个JavaBean对象,那么在MyBatis的SQL中应该是如下使用方式。 如果参数中加了@Param,那么既可以使用#{}获取,也可以使用${}获取。 12@Select("SELECT id,username from user where age between #{queryParam.minAge} and #{queryParam.maxAge}")List<UserVo> queryUserList(@Param("queryParam") QueryParam queryParam); 使用$获取 12@Select("SELECT id,username from user where age between ${queryParam.minAge} and ${queryParam.maxAge}")List<UserVo> queryUserLis...
评论
公告
开始忙了,长草期。






