Spring 特点和意义?

Spring features and significance?

  1. Spring 赋能基于 POJO 的编程。
  2. 它开箱即用地支持 MVC
  3. 在更短的时间内连接代码。
  4. 它如何支持分层架构?
  5. 提供了一个抽象层来简化开发过程(为什么这是一个好处,spring 如何处理这个?) spring 是怎么做到的? 看了很多文章讲spring的优点。但是 none 他们在理论上解释了,即用文字而不是代码,spring 是怎么做到的? 例如,其中一项优势说它支持 POJO 编程?我们也可以用普通的 java 来做到这一点,为什么这是一个好处或者 POJO 的反面是什么? 请大家回答这三个问题。谢谢

简而言之:

  1. spring 是很久以前创建的。它可能与需要更多设置代码的 ejb2 相比。 POJO vs EJB vs EJB 3 此外,spring 确实支持 pojos,例如 MVC 控制器中的 return 值。 pojos 没有外部依赖项,因此您的应用程序保持可移植性(应用程序的非功能性要求)。
  2. 是的,您可以轻松地(我认为)创建 Web 应用程序。
  3. 其核心 spring 提供了一个存储 bean 定义的容器。当请求需要依赖项的服务时,spring 可以查找它是否具有该依赖项的 bean 定义,构造该 bean 的实例并将其注入该服务。这样你就不需要手动实例化你的服务了。
  4. 例如在 Web 应用程序中 spring 具有控制器、服务和存储库的抽象。通常,应用程序会提供控制器,以便调用者可以使用您的 api。控制器应该调用处理您的业务逻辑的服务。服务可以调用存储数据的存储库。这样你就有了分层流程: 控制器 --> 服务 --> 存储库 这样做的好处是,当您更改时,例如你的存储库你不必对你的控制器进行更改。
  5. spring 为开箱即用的常见问题(例如 spring 安全性)提供了许多抽象,并支持约定优于配置。这样你就可以减少样板代码。更少的代码 -> 开发人员犯错的可能性更小。 例如spring-security-oauth2:您可以只在 .properties 文件中设置一些属性,然后 spring 自动配置 beans,当用户请求您的控制器之一时解决 oauth-token 的验证问题。