java - Spring框架的意义

标签 java spring design-patterns spring-mvc

Spring框架的主要优点是什么?

是否失去了对象之间的依赖关系?我们可以在 xml 文件中设置字段的值,但是使用 help xml 初始化这些字段或简单地在 java 代码中初始化这些字段有什么区别?

这是非常相似的问题:What exactly is Spring Framework for?
还有其他优点吗?

最佳答案

这是一个很大的话题,但我会尝试解释控制反转

一个例子: 假设您有一个项目,需要与不同的第三方进行沟通, 但细节有所不同。

最好的方法是定义一个通用接口(interface)

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 接口(interface)。 这样,在编译时,您无需在代码中指定要使用的 ThirdPartyConnector

您可以使用 XML 来完成此操作。

由于维护的复杂性,在大型系统中不更改 Java 代码来切换实现至关重要。而且您无需触及以前的实现即可实现新的第三方。

关于java - Spring框架的意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21018997/

相关文章:

java - Swing应用程序多线程设计模式和最佳实践

java - 无法使用 http post 调用创建 github 发行说明

java - 字符串索引越界异常 : String index out of range: 4

java - 删除 arraylist 中的每第 3 个元素

java - 创建 ArrayList<String> 元素的数组

javascript - 来自域的 Ajax Post 请求(localhost :9393) to another domain(localhost:9696): Spring Rest

spring - 在Spring Boot中使用Web Client Mono获取API响应错误消息

java - 使用 Builder 也可以构建封装对象

java - 在 Spring boot 中分析特定的自定义属性文件

java - 当响应始终正确关闭时如何重构代码?