Spring的替代方案
回顾我们曾评论过的一些开源项目,我们会发现Spring并不是唯一提供依赖注入功能或从上至下建立应用的框架。事实上,如果仔细想想,有太多这样的框架。本着开放的精神,我们简略地介绍其中的几个,但是我们相信其中没有一个能提供Spring这样丰富的解决方案。
1. PicoContainer
PicoContainer(www.picocontainer.org)是一个特别小(100 kB)的依赖注入容器,允许我们在除了PicoContainer本身不添加任何其他依赖的情况下使用依赖注入。因为PicoContainer就是一个单纯的依赖注入容器,所以我们会发现随着应用的不断扩展,不得不引入另外一个框架(比如Spring),那么如果一开始就用Spring岂不是更好。但是,假若需要的是一个微型的依赖注入容器,PicoContainer则是一个不错的选择。Spring的依赖注入容器包和框架中的其他部分是分离的,我们也可以很容易地只使用本部分,这样又能提供日后的扩展性。
2. NanoContainer
NanoContainer(www.nanocontainer.org)是 PicoContainer的扩展,用于管理独立的PicoContinaer容器。因为Spring也同样提供了所有标准依赖注入容器具有的功能,NanoContainer与Spring比并不占优势。NanoContainer最吸引人的是其对脚本语言的支持,但是目前Spring也完全支持脚本语言。
3. Keel框架
Keel框架(www.keelframework.org)更像是一个元框架,因为它的大部分功能来自于其他框架,并通过它集成在一起。举例来说,它的依赖注入功能来自于Apache Avalon容器,而Web功能来自于Struts或类似的框架。Keel提供了很多相同组件的实现,并把它们集成到一个统一的结构中,这让你能够在对你的应用影响最小的情况下换出实现。尽管Keel的功能很广泛,但是它却并没有像Spring那样受欢迎。尽管我们研究Keel的时间还很短,但是我们认为,这是因为Keel的难度造成的。Spring对于各个层面的开发者来说都能立即使用,相对而言Keel就要复杂得多。话虽如此,Keel的特性还是相当不错的,它毫无疑问是Spring的直接竞争对手。
4. Google Guice
这个Guice(读"juice")框架只关注于依赖注入。因此,它不是一个直接与Spring竞争的框架。事实上,我们可以在Guice上使用Spring管理bean。除了侧重点不同外,Spring和Guice的主要区别在于应用配置的差异。Guice使用自动装配或基于注解的配置,自动装配意味着框架已经检查了组件部分,并尝试猜测它们之间的依赖关系。这个猜测是基于依赖的类型和名称。因此,即使是Guice的创建者也承认(我们也完全同意)自动装配不适合大型的企业应用。对于复杂的应用来说,Guice的创建者建议使用基于注解的配置。Guice不像Spring,它不需要任何复杂的配置文件。
遗憾的是,使用Guice,我们只能添加Guice的注解。但即使是有这个不足,Guice也同样是一个很好的框架,它最大的优点是可以与Spring一起使用。
转自:http://book.51cto.com/art/200909/149100.htm
分享到:
相关推荐
对于寻求一体化架构的开发者,Spring替代方案如Grails,因其难以置信的能力和生产率而倍受Groovy开发者的欢迎。Java开发人员若追求快速、轻量级的应用构建,Spring Roo将是一个理想的选择。它的特点在于能快速带领...
那么你会被Grails等Spring替代方案所深深吸引,对于Groovy开发人员来说,Grails具有难以置信的能力和生产率。如果你是寻求快速、轻量级的应用构建方法的Java开发人员,你会喜欢上Spring Roo,它能让你快速地通过应用...
那么你会被Grails等Spring替代方案所深深吸引,对于Groovy开发人员来说,Grails具有难以置信的能力和生产率。如果你是寻求快速、轻量级的应用构建方法的Java开发人员,你会喜欢上Spring Roo,它能让你快速地通过应用...
那么你会被Grails等Spring替代方案所深深吸引,对于Groovy开发人员来说,Grails具有难以置信的能力和生产率。如果你是寻求快速、轻量级的应用构建方法的Java开发人员,你会喜欢上Spring Roo,它能让你快速地通过应用...
JReble的替代产品springloaded: 允许你动态得新增/修改/删除某个方法/字段/构造方法,同样可以修改作用在类/方法/字段/构造方法上的注解.也可以新增/删除/改变枚举中的值。 压缩包中包含最新版本的springloaded和...
在这种背景下,寻找Spring Cloud Netflix 的替代方案变得至关重要。Spring 社区和其他云服务商已经提出了多种解决方案,包括Spring Cloud Alibaba、Spring Cloud Zookeeper、Spring Cloud Consul、Spring Cloud AWS...
5. **AS(Application Server)**:Spring 提供了与常见应用服务器的集成,如 JMX 支持和 EJB(企业级JavaBean)的轻量级替代方案。 6. **Test**:测试模块支持在开发过程中对 Spring 应用进行单元测试和集成测试,...
9. **Spring Cloud Gateway**:Spring Cloud的新一代API网关,替代了Zuul,提供了更强大的路由功能,如动态路由、过滤器、断路器等。 10. **Spring Cloud Data Flow**:数据流管理工具,用于部署和管理微服务中的...
- **第二章:探索替代方案** —— 分析了Spring Integration与其他集成技术相比的优势及适用场景。 - **第三章:Spring框架核心介绍** —— 讲解了Spring框架的基础知识,为后续章节打下理论基础。 - **第四章:企业...
10. **Spring Cloud Netflix** 和 **Spring Cloud Alibaba**:Netflix提供了许多微服务组件,但随着Netflix自身战略调整,Spring Cloud Alibaba逐渐成为替代方案,包括Nacos(服务发现)、Sentinel(流量控制)等。...
9. **Spring Cloud LoadBalancer**:替代Ribbon的新负载均衡器,支持更多策略。 接下来,我们来分析"为什么选择SpringCloud作为微服务架构"。SpringCloud有以下优势: 1. **成熟度高**:Spring社区的强力支持,...
Docker默认使用了json-file driver作为log driver,因此日志是存储在一个json.log的本地文件中的。而gelf则是本文需要使用的log driver。 当容器多了,或者是采用类似swarm集群部署Docker的时候,各种日志分散存在...
4. **EJB**:Spring2支持与企业级JavaBean的集成,提供轻量级替代方案。 五、Spring2的后续发展 Spring2之后,Spring框架继续演进,发展到Spring3、Spring4直至现在的Spring Boot和Spring Framework 5.x。这些版本...
Spring Boot 的出现并非替代 Spring,而是对它的补充和增强。它旨在通过自动化配置减少传统 Spring 应用的初始设置工作,使得开发过程更加高效。Spring Boot 基于 Spring 框架,去掉了繁杂的 XML 配置,采用“起步...
4. **Java配置**:Spring 3.1引入了Java配置类,作为XML配置的替代方案。开发者可以通过编写Java类来定义bean及其依赖关系,提高了代码的可读性和测试性。 5. **资源处理**:Spring 3.1改进了对资源的处理,支持...
3. **WebFlux增强**:Spring WebFlux是Spring MVC的非阻塞替代品,5.2.3版本对其进行了优化,提供了更强大的路由功能和更好的错误处理机制。 4. **JPA与数据访问增强**:此版本增强了对JPA(Java Persistence API)...
7. Spring Cloud Gateway:Spring Cloud的新一代API网关,替代了Zuul,提供了更强大和灵活的路由功能。 三、关键组件解析 1. Eureka源码:研究Eureka的工作机制,包括服务注册、心跳机制、服务发现等,理解如何维护...