我已经知道什么是不可变的以及它是如何工作的,但大多数理论都适用于对象。
是否值得拥有一个不可变的控制器?
如果我的控制器是这样的话
public class MyController {
private MyService myService;
public void doSomething(){
myService.something();
}
public void setMyservice(final MyService myservice){
this.myservice = myservice
}
}
假设MyService是"不可变的" ,是否值得让我的控制器"不变的"通过removeint setter并只用构造函数初始化它?
有人可以告诉我为什么要这样做吗?
答案 0 :(得分:0)
是的,值得让你的Spring bean不可变,你应该这样做。
Spring docs包含以下几个原因:
Spring团队通常提倡构造函数注入,因为它使应用程序组件能够实现为不可变对象,并确保所需的依赖项不为空。此外,构造函数注入的组件总是以完全初始化的状态返回到客户端(调用)代码。