public class Apple
{
private boolean isJuicy;
private boolean isRipe;
public Apple(boolean isJuicy)
{
isJuicy = isJuicy;
}
public void setRipe(boolean ripe)
{
this.isRipe = ripe;
}
public boolean isRipe()
{
return this.isRipe;
}
}
在Spring通过按引用我有两个服务类AppleService
& FruitService
。问题的春季
AppleService
public Apple createApple(boolean isJuicy)
{
Apple apple = null;
apple = new Apple(isJuicy);
fruitService.saveApple(apple);
log("ripe:" + apple.isRipe()); // false
return apple;
}
FruitService
public void saveApple(Apple apple)
{
if(apple.isJuicy())
apple.setRipe(true);
persist(apple);
log("ripe:" + apple.isRipe()); // true
}
为什么苹果报告为FruitService
但不是在AppleService
是成熟?
我认为通过引用FruitService
传递的事实可以保证AppleService中的apple
对象中应该存在相同的对象和对象属性?
让我们从Java *不使用传递引用开始。它为* everything *使用传值,但这些值是基元或引用。我认为这与这个问题没有关系,但是用术语来说是值得的。 –
我很难看到您所举报的行为是如何可能的 - 或者如何在Spring参与,除非你正在使用某种形式的拦截这是克隆的投入。我建议你编辑你的代码,直到你有一个简短的*完整的例子来证明这个问题。我怀疑,想出这样一个例子,你会找出问题所在。特别是,我将从删除持久性部分开始。 –
你把它设置成水果服务。你永远不会在苹果服务中设置它,你只能设置它。与春天无关。 – Kevin