Spring默认扫描bean默认的命名约定有一个细节,如果类名前两位都是大写字母,则默认名称和类名一致,否则将类名首字母转化为小写作为默认名称。
<context:component-scan base-package="com.dh"></context:component-scan>
使用spring默认扫描时 类名前两位不是大写字母的话,以下用法会报错
ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
StudentCtrl s=(StudentCtrl)context.getBean("StudentCtrl");
报错:No bean named 'StudentCtrl' is defined
要将其改为
StudentCtrl s=(StudentCtrl)context.getBean("studentCtrl");
即可正常运行
顺便记一下spring基本配置
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
">