【问题标题】:What are the principles that make Spring beneficial? [closed]使 Spring 受益的原则是什么? [关闭]
【发布时间】:2018-12-26 22:27:43
【问题描述】:

我没有得到使用 Spring 而不是仅仅使用常规 Java EE 的好处,我认为原因是我没有很好地掌握 Spring 采用的设计原则的一些好处(依赖注入,等等)。

例如,我不明白通过添加@Bean@Component@Autowired@Repository 注释可以获得什么好处。

我的问题不是那些注解是做什么的,问题更多的是Spring使实现更容易或更有效的原理是什么?

【问题讨论】:

    标签: spring design-patterns dependency-injection


    【解决方案1】:

    Dependency injectionfantastic pattern。它通常允许您轻松地对组件进行单元测试,否则这些组件需要复杂的模拟或存根。

    值得一提的是,可以使用依赖注入而无需将对象生命周期和“连接”到container。我总是使用依赖注入。但是,我只会考虑为大型项目使用依赖注入框架。例如,去年我用 Java 编写了一个大约 2k 行的网络服务器,并选择不使用“托管”依赖注入。我的团队同意这种安排提供了依赖注入的所有架构优势,而没有 DI 框架的缺点(膨胀、样板、反射等)。但是,如果是 200k 行,我可能会做出不同的选择。

    既然您问的是 Spring 的好处,而不是一般的 DI/IoC,我不得不说我认为 Spring 的设计很糟糕。 Spring 的历史与困扰 Enterprise Java 社区的反模式和糟糕抽象的历史密不可分。公平地说,我尊敬的工程师告诉我 Spring Boot 更好。当然尝试一下,您将了解什么有效或无效。但也许也可以考虑 other options 坚持 UNIX philosophy 只专注于依赖注入。

    【讨论】:

      【解决方案2】:

      Spring 使创建 Java 企业应用程序变得容易。它 以 企业环境,支持 Groovy 和 Kotlin 作为 JVM 上的替代语言,并且可以灵活地创建 多种架构取决于应用程序的需求。作为 Spring Framework 5.0,Spring 需要 JDK 8+(Java SE 8+)并提供 已经对 JDK 9 提供了开箱即用的支持。

      阅读手册: https://docs.spring.io/spring/docs/5.1.4.BUILD-SNAPSHOT/spring-framework-reference/

      有大量有用的信息。

      我的问题不是那些注释是做什么的,问题更多的是 Spring使实现更容易的原则是什么 还是更有效?

      IoC 容器,许多项目和集成,带有嵌入式 servlet 容器的 Spring Boot。许多内置功能。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-24
        • 2019-11-15
        • 1970-01-01
        • 2023-02-23
        • 2017-01-13
        • 2011-11-14
        • 1970-01-01
        • 2012-10-12
        相关资源
        最近更新 更多