為什么我這 bean 的路徑老是說找不到?
public?class?UnitTestBase?{
????private?ClassPathXmlApplicationContext?context;
????private?String?springXmlpath;
????public?UnitTestBase()?{}
????public?UnitTestBase(String?springXmlpath)?{
????????this.springXmlpath?=?springXmlpath;
????}
????@Before
????public?void?before()?{
????????if?(StringUtils.isEmpty(springXmlpath))?{
????????????springXmlpath?=?"classpath*:spring-*.xml";
????????}
????????try?{
????????????context?=?new?ClassPathXmlApplicationContext(springXmlpath.split("[,\\s]+"));
????????????context.start();
????????}?catch?(BeansException?e)?{
????????????e.printStackTrace();
????????}
????}
????@After
????public?void?after()?{
????????context.destroy();
????}
????@SuppressWarnings("unchecked")
????protected?<T?extends?Object>?T?getBean(String?beanId)?{
????????try?{
????????????return?(T)context.getBean(beanId);
????????}?catch?(BeansException?e)?{
????????????e.printStackTrace();
????????????return?null;
????????}
????}
????protected?<T?extends?Object>?T?getBean(Class<T>?clazz)?{
????????try?{
????????????return?context.getBean(clazz);
????????}?catch?(BeansException?e)?{
????????????e.printStackTrace();
????????????return?null;
????????}
????}
}public?class?BeanScope?{
????public?void?say(){
????????System.out.println("當前對象為:"+this.hashCode());
????}
}@RunWith(BlockJUnit4ClassRunner.class)
public?class?TestBeanScope?extends?UnitTestBase{
????public?TestBeanScope(){
????????super("classpath*:spring-beanscope.xml");
????}
????@Test
????public?void?testSay(){
????????BeanScope?beanScope?=?super.getBean("beanScope");
????????beanScope.say();
????}
}<?xml?version="1.0"?encoding="UTF-8"?> <beans?xmlns="http://www.springframework.org/schema/beans" ???????xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ???????xsi:schemaLocation="http://www.springframework.org/schema/beans?http://www.springframework.org/schema/beans/spring-beans.xsd"> ????<bean?id="beanScope"?class="main.java.com.bean.BeanScope"?scope="singleton"></bean> </beans>
九月 30, 2017 1:31:08 上午 org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh
信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@558fbefd: startup date [Sat Sep 30 01:31:08 CST 2017]; root of context hierarchy
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'beanScope' available
?? ?at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:687)
?? ?at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1207)
?? ?at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:284)
?? ?at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
?? ?at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1078)
?? ?at com.testJunit.UnitTestBase.getBean(UnitTestBase.java:44)
?? ?at test.java.com.bean.TestBeanScope.testSay(TestBeanScope.java:20)
?? ?at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
?? ?at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
?? ?at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
?? ?at java.lang.reflect.Method.invoke(Method.java:606)
?? ?at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
?? ?at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
?? ?at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
?? ?at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
?? ?at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
?? ?at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
?? ?at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
?? ?at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
?? ?at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
?? ?at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
?? ?at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
?? ?at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
?? ?at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
?? ?at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
?? ?at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
?? ?at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
?? ?at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
?? ?at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:51)
?? ?at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
?? ?at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
九月 30, 2017 1:31:08 上午 org.springframework.context.support.ClassPathXmlApplicationContext doClose
信息: Closing org.springframework.context.support.ClassPathXmlApplicationContext@558fbefd: startup date [Sat Sep 30 01:31:08 CST 2017]; root of context hierarchy
java.lang.NullPointerException
?? ?at test.java.com.bean.TestBeanScope.testSay(TestBeanScope.java:21)
?? ?at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
?? ?at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
?? ?at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
?? ?at java.lang.reflect.Method.invoke(Method.java:606)
?? ?at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
?? ?at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
?? ?at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
?? ?at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
?? ?at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
?? ?at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
?? ?at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
?? ?at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
?? ?at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
?? ?at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
?? ?at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
?? ?at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
?? ?at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
?? ?at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
?? ?at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
?? ?at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
?? ?at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
?? ?at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:51)
?? ?at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
?? ?at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Process finished with exit code -1
2018-04-27
這么說吧 class=“***” ***這個東西是你的包名+所用到的類名?
我給你看下我的代碼
這是我自己在看的時候,工具類的源碼。在package關鍵字后面的就是這個java文件的包名,類名就是你這個文件的類名 然后***里面寫的是包名.類名
你比較下寫法。在寫***的時候不要按照文件夾這樣寫,就直接看java文件自己首部的包的信息
2017-09-30
那算是maven的文件規則吧 ?, 不屬于路徑里邊
2017-09-30
Bean 路徑里的 ?main/Java/去掉