问题描述
解决Spring错误:No bean named ‘HelloSpring’ available
报错:“C:\Program Files\Java\jdk1.8.0_221\bin\java.exe” “-javaagent:C:\idea\IntelliJ IDEA 2021.2.3\lib\idea_rt.jar=63532:C:\idea\IntelliJ IDEA 2021.2.3\bin” -Dfile.encoding=UTF-8 -classpath “C:\Program Files\Java\jdk1.8.0_221\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\rt.jar;C:\JavaEE应用开发\JavaEE-idea-work\teacher-work\chapter06-unit6\target\classes;C:.m2\repository\org\springframework\spring-core\5.2.8.RELEASE\spring-core-5.2.8.RELEASE.jar;C:.m2\repository\org\springframework\spring-jcl\5.2.8.RELEASE\spring-jcl-5.2.8.RELEASE.jar;C:.m2\repository\org\springframework\spring-beans\5.2.8.RELEASE\spring-beans-5.2.8.RELEASE.jar;C:.m2\repository\org\springframework\spring-context\5.2.8.RELEASE\spring-context-5.2.8.RELEASE.jar;C:.m2\repository\org\springframework\spring-aop\5.2.8.RELEASE\spring-aop-5.2.8.RELEASE.jar;C:.m2\repository\org\springframework\spring-expression\5.2.8.RELEASE\spring-expression-5.2.8.RELEASE.jar;C:.m2\repository\commons-logging\commons-logging\1.2\commons-logging-1.2.jar;C:.m2\repository\org\projectlombok\lombok\1.18.24\lombok-1.18.24.jar” cn.js.ccit.TestHelloSpring
Exception in thread “main” org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named ‘HelloSpring’ available
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:816)
at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1288)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1109)
at cn.js.ccit.TestHelloSpring.main(TestHelloSpring.java:11)
进程已结束,退出代码为 1
初始代码:
<!-- 1.配置文件-->
<bean id="helloSpring" class="cn.js.ccit.HelloSpring">
<property name="userName" value="张三"/>
</bean>
public class TestHelloSpring {
public static void main(String[] args){
//初始化spring容器,加载applicationContext.xml配置
ClassPathXmlApplicationContext applicationContext=
new ClassPathXmlApplicationContext("applicationContext.xml");
//通过容器获取配置中helloSpring的实例
HelloSpring helloSpring=(HelloSpring)applicationContext.getBean("HelloSpring");
//调用方法
helloSpring.show();
}
}
解决过程:
方法一:将resources标记为资源根(未解决)
变成以下形式:
方法二(最终方法):修改大小写
原因分析:
getBean(“HelloSpring”)中将小写误写为大写
解决方案:
将大写给位小写//最终修改代码:
public class TestHelloSpring {
public static void main(String[] args){
//初始化spring容器,加载applicationContext.xml配置
ClassPathXmlApplicationContext applicationContext=
new ClassPathXmlApplicationContext("applicationContext.xml");
//通过容器获取配置中helloSpring的实例
HelloSpring helloSpring=(HelloSpring)applicationContext.getBean("helloSpring");
//调用方法
helloSpring.show();
}
}