- 一个xml文件声明两个beanid相同的对象,在项目启动时就会报错(对xml解析)。要求beanId唯一,该beanId元素标签已经被使用。
- 两个xml文件声明相同beanId的对象,项目启动是没有问题的。使用时,属性值是后加载的对象值(先加载的会被后加载的覆盖)
- @Configuration 注解 + @Bean 注解 声明的相同name,但子类对象不同的实例对象如下,只会加载第一个声明的bean对象,第二个逻辑不会走进去,故在其他程序中单独引用Cart01时,没有任何问题,只要引用Cart02,就会报错:
- @Autowired 没有该类的实例bean NoSuchBeanDefinitionException
- @Resource 要求的类型和提供的类型不一致 BeanNotOfRequiredTypeException
@Configuration
public class CartConfiguration {
@Bean(name = "cart", initMethod = "initMethod")
public Cart01 cart01() {
Cart01 cart = new Cart01();
cart.setId(5);
return cart;
}
@Bean(name = "cart", initMethod = "initMethod")
public Cart02 cart02() {
Cart02 cart = new Cart02();
cart.setId(6);
return cart;
}
}
标签:面试题,spring,cart,initMethod,bean,报错,Cart01,Cart02
From: https://www.cnblogs.com/rbwbear/p/17677710.html