Spring注解和xml冲突问题

本文探讨了在Spring中,当存在两个同名实体类时,XML配置与注解的优先级问题。XML配置的bean会被优先创建,导致xml中重复id引发错误。通过实例展示了如何理解和处理这种冲突,并强调了xml配置的决定性作用。
摘要由CSDN通过智能技术生成

两个实体类的情况下,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

以至于报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值