我已经知道什么是不可变的以及它是如何工作的,但大多数理论都适用于对象。
有一个不可变的控制器值得吗?
如果我的控制器是这样的怎么办
public class MyController {
private MyService myService;
public void doSomething(){
myService.something();
}
public void setMyservice(final MyService myservice){
this.myservice = myservice
}
}
假设 MyService 是“不可变的”,是否值得通过移除 setter 并仅通过构造函数初始化它来使我的控制器“不可变”?
有人能给我一个理由为什么我应该这样吗?
是的,让你的 Spring bean 不可变是值得的,你应该这样做。
Spring 文档包含以下几个原因:
Spring 团队通常提倡构造函数注入,因为它可以将应用程序组件实现为不可变对象,并确保所需的依赖项不为空。此外,构造函数注入的组件总是以完全初始化的状态返回给客户端(调用)代码。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句