具体用什么框架跟项目规模和大小有很大的关系,下面从单体应用架构和微服务架构两个方面讲一下。
一、单体应用架构
单体应用架构比较简单,普遍用到就是五大框架,包括mvc层、持久层等。由于这五大框架是web开发框架学习的基础,相对于微服务框架比较简单,在此简单介绍一下。
- Spring:ioc容器和bean管理,解决的是业务逻辑层和其他各层的松耦合问题,也起到纽带和桥梁的作用。
- Springmvc:目前使用最普遍和最流行的mvc框架。
- Struts2:也是一款类似于Springmvc功能的mvc框架,它的前身struts1基本没人使用了。struts2相较于springmvc有诸多劣势,包括自身漏洞门问题,慢慢走向没落。现在使用的大部分都是维护的老项目老系统。
- hibernate:重量级的面向对象的持久层框架,其实它的功能非常强大,由于其自身功能的强大在使用和配置上比较复杂,很多程序员待之以鄙夷。hibernate用于中小系统项目还是很合适的,开发效率较高。
- mybatis:是一款中低量级别的半自动的持久层框架,由于自身使用的灵活性和易于aql调优,目前还是非常流行的,很多大型项目都用到它。
二、微服务架构
微服务架构相对于单体应用架构复杂些,尤其是微服务架构用到分布式应用架构就更为复杂。
- springboot:微服务基础框架,由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。特点 :1. 创建独立的Spring应用程序 2. 嵌入的Tomcat,无需部署WAR文件 3. 简化Maven配置 4. 自动配置Spring 5. 提供生产就绪型功能,如指标,健康检查和外部配置 6. 绝对没有代码生成和对XML没有要求配置。一句话总结:使用springboot可以高效快速开发web应用,而且可以不使用单体应用开发框架中那些繁杂的xml配置。
- Dubbo:Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架(告别Web Service模式中的WSdl,以服务者与消费者的方式在dubbo上注册) 其核心部分包含: 1. 远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。 2. 集群容错: 提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。 3. 自动发现: 基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器。
- SpringCloud:用官方文档的说明:Spring Cloud为开发人员提供了快速构建分布式系统中的一些通用模式(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,领导选举,分布式 会话,群集状态)。 分布式系统的协调导致了锅炉板模式,并且使用Spring Cloud开发人员可以快速地站起来实现这些模式的服务和应用程序。 它们可以在任何分布式环境中正常工作,包括开发人员自己的笔记本电脑,裸机数据中心和受管平台,如Cloud Foundry。
以上就是公司普遍使用的一些框架,当然还有其他的一些框架,比如jFinal、ejb、公司自研封装的一些框架等等,不管用什么框架,技术选型的前提就是满足需求,学习成本低,开发效率高,伸缩性能和可扩展性能要好等等。
本文由威海网络公司半岛科技整理发布2018.04.28