春天的特点和意义?
Posted
技术标签:
【中文标题】春天的特点和意义?【英文标题】:Spring features and significance? 【发布时间】:2021-08-27 21:19:21 【问题描述】:-
Spring 支持基于 POJO 的编程。
它提供开箱即用的 MVC 支持
在更短的时间内连接代码。
它如何支持分层架构?
提供了一个抽象层来简化开发过程(为什么这是一个好处以及spring如何处理这个?)
春天是怎么做到的?
我读了很多关于弹簧优点的文章。但是他们都没有在理论上解释,即用文字而不是代码来解释,spring是如何做到的?
例如,优势之一是它赋予 POJO 编程能力?我们也可以用普通的java来做到这一点,为什么这是一个好处或与POJO相反的东西?
请大家回答这三个问题。谢谢
【问题讨论】:
这超出了 *** 问题的范围。从参考文档开始:docs.spring.io/spring-framework/docs/current/reference/html/… 你能用高水平或一般的方式回答其中的任何一个吗? 【参考方案1】:简而言之:
-
spring 是很久以前创建的。它可能与需要更多设置代码的 ejb2 相比。 POJO vs EJB vs EJB 3 spring 也支持 pojos,例如作为 MVC 控制器中的返回值。 pojos 没有外部依赖项,因此您的应用程序保持可移植性(应用程序的非功能性要求)。
是的,您可以轻松(我认为)创建 Web 应用程序。
在其核心处,spring 提供了一个存储 bean 定义的容器。当请求需要依赖的服务时,spring 可以查找它是否具有该依赖的 bean 定义,构造该 bean 的实例并将其注入该服务。这样您就不需要手动实例化您的服务。
例如,在 Web 应用程序中,spring 具有控制器、服务和存储库的抽象。通常,应用程序会提供控制器,以便调用者可以使用您的 api。控制器应该调用处理您的业务逻辑的服务。并且服务可以调用存储您的数据的存储库。这样你就有了一个分层的流程:
控制器 --> 服务 --> 存储库
这有一个优势,当你改变例如您不必对控制器进行更改。
spring 为开箱即用的常见问题(例如 spring 安全性)提供了许多抽象,并支持约定优于配置。这样你就可以减少样板代码。更少的代码 -> 开发人员犯错的可能性更小。
例如spring-security-oauth2:您可以在 .properties 文件中设置一些属性,然后 spring 自动配置 bean,以在用户请求您的控制器之一时解决 oauth-token 的验证问题。
【讨论】:
感谢您的回答。我有以下问题: 2. Spring 支持 MVC 模式的“如何”? 4.你解释的分层设计也可以用普通的java来完成。弹簧的作用是什么,它是如何支持/帮助的? 5. 它是如何为这些层提供抽象的? 2) spring 支持 MVC 模式,为您提供了在应用程序中轻松建立模式的工具。 4)是的,同样可以在普通的java中完成。但是例如通过使用 @Repository 之类的 spring 注释,您必须为数据库检索操作声明一个新类。相反,您还可以创建一个扩展 HttpServlet 的类并在该类中打开一个数据库连接。 5)例如控件:您可以直接使用 java 对象作为参数,而不是解析 http 请求体并将其映射到 pojo。因此,spring 会为您抽象出 http 正文。以上是关于春天的特点和意义?的主要内容,如果未能解决你的问题,请参考以下文章