信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@426a086a: startup date [Mon Oct 16 15:19:37 CST 2017]; root of context hierarchy
十月 16, 2017 3:19:37 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from class path resource [applicationContext.xml]
十月 16, 2017 3:19:38 下午 org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor <init>
信息: JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
十月 16, 2017 3:19:38 下午 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
信息: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@4f5b0046: defining beans [empDao01,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,template,dbcp,org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor]; root of factory hierarchy
Exception in thread "main" org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'empDao02' is defined
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:570)
at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1114)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:279)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:198)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1121)
at org.show51.testMain.main(testMain.java:29)
原代码:
public class testMain {
public static void main(String[] args) {
String conf="applicationContext.xml";
ApplicationContext ac=
new ClassPathXmlApplicationContext(conf);
EmpDao01 empDao01=ac.getBean("empDao02", EmpDao01.class);
Emp emp01=new Emp();
emp01.setAdminId("9");
emp01.setAdminname("tian");
emp01.setAdminpwd("111");
empDao01.save(emp01);
}
}
原EmpDao01代码
@Repository
public class EmpDao01{
@Resource//注入
private JdbcTemplate template;
public void save(Emp emp){
String sql="insert into t_test"
+"(adminId,adminname,adminpwd) "
+ "values (?,?,?)";
Object[] param={
emp.getAdminId(),
emp.getAdminname(),
emp.getAdminpwd()
};
template.update(sql, param);
}
}
报出问题就在于: EmpDao01 empDao01=ac.getBean("empDao02", EmpDao01.class);
的getBean(arg0,arg1),这个arg0的参数要是你EmpDao01 类的首字母缩写,这里实际是从这个类中获取bean对象,你要写的话就是将这个类名首字母缩写填入arg0就行了
再次运行:
十月 16, 2017 3:25:41 下午 org.springframework.context.support.AbstractApplicationContext prepareRefresh
信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@6c069ec: startup date [Mon Oct 16 15:25:41 CST 2017]; root of context hierarchy
十月 16, 2017 3:25:41 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from class path resource [applicationContext.xml]
十月 16, 2017 3:25:41 下午 org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor <init>
信息: JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
十月 16, 2017 3:25:41 下午 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
信息: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@7ce5bef1: defining beans [empDao01,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,template,dbcp,org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor];
root of factory hierarchy
查询一下mysql数据库:
有这么一条数据 id:9;用户名:tian;密码:111的数据