<bean id="userService" class="com.example.Service.Impl.UserServiceImpl"/>
此时存储到Spring容器(singleObjects单例池)中的beanName是userService,值是UserServiceImpl对象,可以根据beanName获取bean实例
关键代码
- // 创建工厂对象
- DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
- // 创建读取器(读取xml文件中的bean对象)
- XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(beanFactory); // 当前是XML配置的方式,将读取器与工厂绑定
- // 读取器读取对象给工厂
- reader.loadBeanDefinitions("application.xml");
- // 获取bean对象
- Object userService = beanFactory.getBean("userService");
- System.out.println(userService);
如果不配置id,则Spring会把当前Bean实例全限定名作为beanName
<bean class="com.example.Service.Impl.UserServiceImpl"/>
Object userService = beanFactory.getBean("com.example.Service.Impl.UserServiceImpl");
Bean的别名配置(几乎不使用)
可以为当前bean配置多个别名、根据别名也可以获取bean对象
<bean id="userService" name="aaa,bbb" class="com.example.Service.Impl.UserServiceImpl">
- System.out.println(beanFactory.getBean("userService"));
- System.out.println(beanFactory.getBean("aaa"));
- System.out.println(beanFactory.getBean("bbb"));
运行结果如下: