how2j.cn

下载区
文件名 文件大小
junit-4.12.jar 307k
hamcrest-all-1.3.jar 299k
spring.rar 12m
步骤 1 : 先运行,看到效果,再学习   
步骤 2 : 模仿和排错   
步骤 3 : 效果   
步骤 4 : jar   
步骤 5 : 导入到当前项目中   
步骤 6 : TestSpring   

步骤 1 :

先运行,看到效果,再学习

edit
老规矩,先下载右上角的可运行项目,配置运行起来,确认可用之后,再学习做了哪些步骤以达到这样的效果。
在确保可运行项目能够正确无误地运行之后,再严格照着教程的步骤,对代码模仿一遍。
模仿过程难免代码有出入,导致无法得到期望的运行结果,此时此刻通过比较正确答案 ( 可运行项目 ) 和自己的代码,来定位问题所在。
采用这种方式,学习有效果,排错有效率,可以较为明显地提升学习速度,跨过学习路上的各个槛。

推荐使用diffmerge软件,进行文件夹比较。把你自己做的项目文件夹,和我的可运行项目文件夹进行比较。
这个软件很牛逼的,可以知道文件夹里哪两个文件不对,并且很明显地标记出来
这里提供了绿色安装和使用教程:diffmerge 下载和使用教程
效果
注解方式用到了junit,所以需要在右上角下载:
junit-4.12.jar和hamcrest-all-1.3.jar
步骤 5 :

导入到当前项目中

edit
把jar包导入到项目中,导包办法:右键 project->properties->java build path->libaries->add external jars
导入到当前项目中
修改TestSpring, 并运行
1. @RunWith(SpringJUnit4ClassRunner.class)
表示这是一个Spring的测试类

2. @ContextConfiguration("classpath:applicationContext.xml")
定位Spring的配置文件

3. @Autowired
给这个测试类装配Category对象

4. @Test
测试逻辑,打印c对象的名称
TestSpring
package com.how2java.test; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import com.how2java.pojo.Category; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("classpath:applicationContext.xml") public class TestSpring { @Autowired Category c; @Test public void test(){ System.out.println(c.getName()); } }


HOW2J公众号,关注后实时获知布最新的教程和优惠活动,谢谢。


问答区域    
2019-02-08 运行注解方式报错 Caused by: java.lang.ArrayIndexOutOfBoundsException: 9322
nickren



JDK10,查了很多遍,还是抱这个错,不知道怎么办

							
/Library/Java/JavaVirtualMachines/jdk-10.0.2.jdk/Contents/Home/bin/java "-javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=60568:/Applications/IntelliJ IDEA.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath /project/spring/out/production/spring:/project/spring/lib/jta-1.1.jar:/project/spring/lib/hibernate3.jar:/project/spring/lib/antlr-2.7.6.jar:/project/spring/lib/dom4j-1.6.1.jar:/project/spring/lib/aspectjweaver.jar:/project/spring/lib/ehcache-1.2.4.jar:/project/spring/lib/aopalliance-1.0.jar:/project/spring/lib/slf4j-api-1.6.1.jar:/project/spring/lib/cglib-nodep-2.1_3.jar:/project/spring/lib/javassist-3.12.0.GA.jar:/project/spring/lib/commons-logging-1.1.1.jar:/project/spring/lib/commons-collections-3.1.jar:/project/spring/lib/commons-logging-api-1.1.jar:/project/spring/lib/mysql-connector-java-5.0.8-bin.jar:/project/spring/lib/org.springframework.aop-3.1.0.M2.jar:/project/spring/lib/org.springframework.asm-3.1.0.M2.jar:/project/spring/lib/org.springframework.jms-3.1.0.M2.jar:/project/spring/lib/org.springframework.orm-3.1.0.M2.jar:/project/spring/lib/org.springframework.oxm-3.1.0.M2.jar:/project/spring/lib/org.springframework.web-3.1.0.M2.jar:/project/spring/lib/hibernate-jpa-2.0-api-1.0.1.Final.jar:/project/spring/lib/org.springframework.core-3.1.0.M2.jar:/project/spring/lib/org.springframework.jdbc-3.1.0.M2.jar:/project/spring/lib/org.springframework.test-3.1.0.M2.jar:/project/spring/lib/org.springframework.beans-3.1.0.M2.jar:/project/spring/lib/org.springframework.aspects-3.1.0.M2.jar:/project/spring/lib/org.springframework.context-3.1.0.M2.jar:/project/spring/lib/org.springframework.expression-3.1.0.M2.jar:/project/spring/lib/org.springframework.instrument-3.1.0.M2.jar:/project/spring/lib/org.springframework.web.struts-3.1.0.M2.jar:/project/spring/lib/org.springframework.transaction-3.1.0.M2.jar:/project/spring/lib/org.springframework.web.portlet-3.1.0.M2.jar:/project/spring/lib/org.springframework.web.servlet-3.1.0.M2.jar:/project/spring/lib/org.springframework.context.support-3.1.0.M2.jar:/project/spring/lib/org.springframework.instrument.tomcat-3.1.0.M2.jar com.how2java.test.TestSpring
2月 08, 2019 10:43:30 下午 org.springframework.context.support.AbstractApplicationContext prepareRefresh
信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@2c039ac6: startup date [Fri Feb 08 22:43:30 CST 2019]; root of context hierarchy
2月 08, 2019 10:43:30 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from class path resource [applicationContext.xml]
Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: file [/project/spring/out/production/spring/com/how2java/aspect/LoggerAspect.class]; nested exception is java.lang.ArrayIndexOutOfBoundsException: 9322
	at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:255)
	at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:218)
	at org.springframework.context.annotation.ComponentScanBeanDefinitionParser.parse(ComponentScanBeanDefinitionParser.java:84)
	at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:73)
	at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1414)
	at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1404)
	at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:184)
	at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:140)
	at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:111)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:243)
	at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127)
	at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93)
	at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:131)
	at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:522)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:436)
	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93)
	at com.how2java.test.TestSpring.main(TestSpring.java:12)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 9322
	at org.springframework.asm.ClassReader.readClass(Unknown Source)
	at org.springframework.asm.ClassReader.accept(Unknown Source)
	at org.springframework.asm.ClassReader.accept(Unknown Source)
	at org.springframework.core.type.classreading.SimpleMetadataReader.<init>(SimpleMetadataReader.java:54)
	at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:80)
	at org.springframework.core.type.classreading.CachingMetadataReaderFactory.getMetadataReader(CachingMetadataReaderFactory.java:101)
	at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:231)
	... 24 more

Process finished with exit code 1


1 个答案

市长 答案时间:2019-03-03
站长用的eclipse做,我也用sts发现运行起来还是很简单的



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2018-10-18 站长这个教程遗漏了
now2iava
这一步接着上一步教程的话,应该先把xml设置改回来,右上角可下载文件是没错的,但是跟着教程做就会缺少这一步,相信不止我一个人在这里出错了。




1 个答案

KingNight 答案时间:2018-12-01
其实并不是遗漏了,如果是直接下载的可运行项目的话是会发现不同的,但是我们如果是自己慢慢敲的话,则需要自己去修改xml



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到




2018-09-22 为什么xml文件要这样设置呢?
2018-06-21 成了
2018-06-21 注解部分报错
2018-06-13 jar包版本低
2018-03-29 请问下这个testSpring的意义是啥呢?貌似我把test方法换成main方法也有一样的效果。。。
2018-03-22 站长,提醒一下这里要Run As 选择JUnit Test
2018-03-02 我在哪里才能查到依赖的类库呢?
2018-01-02 注解方式貌似没有
2017-12-21 获取不到 Category里面的getName
2017-10-30 站长,我这块报错了,报错的是什么呢?没有看懂这块。
2017-10-23 这一节测试的内容有什么用呢
2017-09-05 被自己坑了一下。。。
2017-08-13 老师,有个疑问哈,好奇本节加了@ContextConfiguration("classpath:applicationContext.xml")
2017-07-01 这一节的就是告诉我们可以用TestSpring这种测试类替换TestSpringOldWay这个类吗?
2017-05-13 好像少了一步,修改applicationContext.xml文件




提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
关于 JAVA 框架-Spring-注解方式测试 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 984886441
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: http://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图