Spring框架的主要优点是什么?
它是否失去了对象之间的依赖关系?我们可以在xml文件中设置字段的值,但是使用help xml或只是在java代码中初始化这些字段有什么区别?
这是一个非常相似的问题:What exactly is Spring Framework for?
还有其他优势吗?
答案 0 :(得分:1)
这是一个很大的话题,但我会尝试解释控制反转
一个例子: 假设您有一个项目,您需要与需要与之沟通的不同第三方进行通信, 但细节不同。
最好的方法是定义通用接口
public interface ThirdPartyConnector{
public String sendRequest(String data);
}
您的第一个第三方的实施可能看起来:
public class FirstThirdPartyConnector implements ThirdPartyConnector{
public String sendRequest(String data){
//implementation details
}
}
你的第二个第三方:
public class SecondThirdPartyConnector implements ThirdPartyConnector{
public String sendRequest(String data){
//implementation details
}
}
等等......
现在,在您的Java代码中,与这些第三方进行通信时,
你永远不会使用new
关键字对它们进行实例化,而是使用ThirdPartyConnector
接口。
这样,在编译期间,您不会在代码中指定要使用的ThirdPartyConnector
。
您可以在XML中执行此操作。
由于维护的复杂性,在大型系统中不改变Java代码以切换实现是至关重要的。而且您无需触及以前的实施即可实施新的第三方。