使用@autowired 多次插入 修改 会数据出错问题

文章描述了在使用@Autowired注解进行自动装配时遇到的问题,当类属性值被修改后,下次注入时仍保留上次值。作者提供了两种解决方案:一是每次使用时新创建对象,但牺牲了自动装配;二是手动设置属性,但对大量属性不适用。
摘要由CSDN通过智能技术生成

我这段时间 发现的一个问题 如下
使用 @Autowired标注一个 类

@Autowired
ABC abc ;

类如下

@Date
class  ABC {
A a;
B b;
C c;
}

当第一次插入

abc{
a=1;
b=2;
c=null}

成功插入a=1;b=2;c=null;
第二次插入

abc{
a=null;
b=3;
c=4}

插入数据为a=1;b=3;c=4;
(此处设置null 数据不处理)
正常应该是a=null;b=3;c=4;
很明显 结果错了 a的数据沿用了上一次插入的数据,b和c 都因为修改过所以成功了

处理方法
方法一: 每次使用的时候重新new一个类

abc=new ABC();

该方法 缺点 自动装配的效果没有了

方法二: 将所有未修改过的 数据 也 都修改为空

abc.seta(null);
abc.setb(3);
abc.setc(4)

该方法 缺点 类属性过多的时候会很麻烦 要写好多行 重复代码;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zzsaixuexi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值