Java 有状态对象 & 无状态对象

496 阅读1分钟

有状态对象:

简单来说, 普通的java类, 带有属性, 并且属性是可以被修改的, 那么这个类的实例就是有状态对象. 也就是如果你拿到的这个实例, 可能就被别人修改过, 那么你当前的操作就会受到别人之前操作的影响.

public class Dog {

    private String name = "狗子";
    private String master = "人类";

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getMaster() {
        return master;
    }

    public void setMaster(String master) {
        this.master = master;
    }
}

无状态对象

常规的spring中的@service标注的类, 正常来说都是无状态的类, 你可以想一下, 你的service类是不是没有可以被修改的属性, 并且不同的人拿到同样一个service是不是不用担心这个service被人修改过?

当然你如果创建一个普通的java类, 也符合这样的特点, 它也就是一个无状态对象

@Service
public class ConfQueryServiceImpl implements ConfQueryService {

    @Autowired
    private TestPoRepo testPoRepo;

    @Override
    public String queryConfList(Integer confId) {
        return testPoRepo.findByConfId(confId);

    }

}