两个实体类的情况下,xml和注解直接使用且名称相同
当出现两个相同名称实例,spring会覆盖其中一个,xml优先级高于注解;xml中同时配置两个相同id的bean,直接校验不通过报错。
例子:有两个同名实体类Car
xml
<bean id="car" class="com.qcby.service.Car">
<constructor-arg index="0" value="大G"/>
<constructor-arg index="1" value="200"/>
</bean>
注解
package com.qcby.testanno;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component(value = "car")
public class Car {
// 注解注入值,属性set方法是可以省略不写的。
// 只有一个属性,属性的名称是value,value是可以省略不写的
@Value("宝马")
private String carname;
@Value(value = "160")
private Double money;
Test
@Test
public void run2(){
// 工厂
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
// 获取对象
Car car = (Car) ac.getBean("car");
System.out.println(car.toString());
}
此时我们尽管引入的是testtnno包下的car,但是getBean获得的还是service包下的car
以至于报错。