最近在学习Spring,使用的是Spring 5.0.1 学习书本中使用的是4.0

学习书本中使用以下来加载配置文件及设置

Resource resource = new ClassPathResource("applicationContext.xml"); //加载配置文件
BeanFactory factory = new XmlBeanFactory(resource);
Student student= (Student) factory.getBean("student");
student.setName("李明");
student.setAge(18);
mystudentBean.setSex("男");
System.out.println(student);

结果XmlBeanFactory(resource)那里出现了已过时,后面上网查了一下使用了如下方式

ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");BeanFactory factory = context;Student student= (Student) factory.getBean("student");student.setName("李明");student.setAge(18);student.setSex("男");System.out.println(student);

在Junit test类中运行的时候出现了如下错误:

java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactoryat org.springframework.context.support.AbstractApplicationContext.<init>(AbstractApplicationContext.java:160)at org.springframework.context.support.AbstractApplicationContext.<init>(AbstractApplicationContext.java:230)at org.springframework.context.support.AbstractRefreshableApplicationContext.<init>(AbstractRefreshableApplicationContext.java:92)at org.springframework.context.support.AbstractRefreshableConfigApplicationContext.<init>(AbstractRefreshableConfigApplicationContext.java:59)at org.springframework.context.support.AbstractXmlApplicationContext.<init>(AbstractXmlApplicationContext.java:62)at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:141)at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:85)at com.itzcn.Test.BeanFactoryTest.test(BeanFactoryTest.java:25)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)at org.junit.runners.ParentRunner.run(ParentRunner.java:363)at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactoryat java.net.URLClassLoader.findClass(URLClassLoader.java:381)at java.lang.ClassLoader.loadClass(ClassLoader.java:424)at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)at java.lang.ClassLoader.loadClass(ClassLoader.java:357)... 31 more

原因是因为缺少了commons-logging-1.1.3.jar包,加入该包后可以正常运行测试了

写以上是为了方便记录自己学习过程中遇到问题的解决方式,避免出现类似的问题时不知道是什么原因。

转载于:https://www.cnblogs.com/lichengcai/p/Spring.html

学习Spring中遇到关于BeanFactory及测试类的问题相关推荐

  1. 动态代理——》AOP —— Spring 中的 AOP||AOP 相关术语||学习 spring 中的 AOP 要明确的事

    AOP 概述 什么是 AOP       AOP:全称是 Aspect Oriented Programming 即:面向切面编程 AOP 的作用及优势 作用: 在程序运行期间,不修改源码对已有方法进 ...

  2. java中factory_Java后台面试--Spring中FactoryBean与BeanFactory的使用及区别

    以前刚转Java的时候去面试被问到过Spring中FactoryBean与BeanFactory的使用及区别,由于之前没有重视这两个的区别,只是在配置文件里面加bean结点并通过注解的形式调用,所以被 ...

  3. spring整合mybatis(入门级简单教程1)--在spring中配置c3p0,并成功测试

    引子:spring整合mybatis.因为,我们看完(我就是这样的)spring和mybatis之后,本想自己写一个小小的项目,以便加深理解,但是我发现在spring中整合mybatis并不是一件容易 ...

  4. Spring中ApplicationContext和beanfactory区别

    BeanFacotry是spring中比较原始的Factory.如XMLBeanFactory就是一种典型的BeanFactory.原始的BeanFactory无法支持spring的许多插件,如AOP ...

  5. XCode中的单元测试:编写测试类和方法(内容意译自苹果官方文档)

    当你在工程中通过测试导航栏添加了一个测试target之后, xcode会在测试导航栏中显示该target所属的测试类和方法. 这一章演示了怎么创建测试类,以及如何编写测试方法. 测试targets, ...

  6. java学习day40(Spring)spring中的aop和基于XML以及注解的AOP配置

    第1章 AOP 的相关概念[理解] 1.1AOP 概述 1.1.1 什么是 AOP AOP :全称是 Aspect Oriented Programming 即:面向切面编程. 简单的说它就是把我们程 ...

  7. Spring中AOP相关的API及源码解析,原来AOP是这样子的

    前言 之所以写这么一篇文章主要是因为下篇文章将结束Spring启动整个流程的分析,从解析配置到创建对象再到属性注入最后再将创建好的对象初始化成为一个真正意义上的Bean.因为下篇文章会涉及到AOP,所 ...

  8. Spring 中的 context

    Spring 中的 context BeanFactory 首先看下,官方在代码中给出的注释: The root interface for accessing a Spring bean conta ...

  9. spring中的aop术语和细节

    Spring中AOP的细节 说明 我们学习spring的aop,就是通过配置的方式 AOP相关术语 Joinpoint(连接点): 所谓连接点是指那些被拦截到的点.在spring中,这些点指的是方法, ...

最新文章

  1. 医学与人工智能交叉融合,打开眼科理疗新窗
  2. spark VS Hadoop 两大大数据分析系统深度解读
  3. (38)编写 ShellCode
  4. 【LOJ6072】苹果树【折半搜索】【矩阵树定理】【二项式反演】
  5. java发送c语言结构体_C语言中结构体直接赋值?
  6. bash 脚本编写_如何在Bash中编写循环
  7. 【华为云网络技术分享】HTTP重定向HTTPS配置指南
  8. 在oracle数据库表中没有添加rowid字段为什么会出现?
  9. SQL_TRACE与tkprof分析
  10. php感悟1500,《与美同行》读后感1500字
  11. [Noi2015]寿司晚宴
  12. vue3:兄弟组件,跨组件传值,事件总线的通信方式(mitt / tiny-emitter)
  13. 为何服务器变成ink文件,电脑上的文件全部变成ink了, 为什么, 跪求大神回答
  14. 一位软件测试工程师的5年成长经历,这些职场黑话,你需要知道
  15. 【iOS15更新必学】 如何完整备份iPhone资料?
  16. 帝国织梦和各种php网页将局部广告进行屏蔽搜索引擎蜘蛛
  17. Jenkins 用户角色权限管理
  18. 网站用户体验之404页面要素
  19. Dobbo微服务项目实战(详细介绍+案例源码) - 5.推荐好友列表/MongoDB集群/动态发布与查看
  20. 西门子S7-1200控制5轴伺服程序加维纶触摸屏画面案例

热门文章

  1. Android----PopupWindow
  2. nginx的tmp文件过大导致磁盘空间不足一例
  3. [emuch.net]MatrixComputations(1-6)
  4. Struts2基础(1)_MVC
  5. 模拟进程管理小结,编码规范的重要性
  6. iOS UITextField清空按钮
  7. university, school, college, department, institute的区别
  8. 微软公布Win10正式版功能对比表,哪个版本适合你?
  9. python标准库介绍——23 UserString 模块详解
  10. oracle 查询重复数据并且删除, 只保留一条数据