现在企业所用到的Java微服务框架主要有哪些呢?

2020-03-31 18:08发布

3条回答
普拉托夫
2楼 · 2020-05-13 21:20

springboot +mybatis+shiro 

你--l银河系l--我
3楼 · 2020-05-14 09:23

1、SpringMVC

中国有句俗话叫“姜还是老的辣”,所以SpringMVC虽然发布已有十多年,但仍然老当益壮,以绝对的优势处于领先者的地位。在拥抱完整的MVC框架后,Spring不断发展变化,现在已经成为面向Internet应用程序的全面Java框架,为软件工程师提供了用于Web应用程序开发的强大的工具包和针对安全项目的应用程序配置。作为最受程序员宠爱的一枚,Spring发展良好的生态系统提供了很多附加选项:RESTAPI或SOAPWeb服务,安全性(身份验证和授权,加密)等。另外,很多大型公司都选择使用SpringMVC,所以如果你在使用过程中遇到问题,会有很多技术大牛能够给你解答。

优点和缺点

Spring以绝对优势登顶不是没有理由的,它之所以能够成为最知名的Java框架,主要是因为:

1.使用POJO简化测试数据的注入。

2.增强的模块化,使代码拥有更好的可读性。

3.不同模块之间解耦合。

4.灵活应用依赖注入(DI)。

虽然SpringMVC有很多文档可供参考,但其对于新手Java开发人员来说学习曲线还是太陡了,在碰到参考文档较少的部分,开发人员可能会出现无从下手的情况。另外,虽然SpringMVC网上的信息比较多,但是版本不同也会有差异。总体来说,SpringMVC是工程师最喜爱的框架之一。

2、Struts2

为了更详细地阐述现代软件工程师广泛使用的Java框架,这里千锋武汉Java培训老师为大家介绍ApacheStruts1的后续版本Struts2。Struts2用于构建当代JavaEEWeb应用程序。Apache软件基金会为开发人员提供了一个广泛的工具,用于创建企业级面向Web的应用程序,开发过程的优化贯彻始终,甚至连后期维护也囊括其中,到最终点优化开发过程以及后期维护。如果您在为高负载系统(如广播门户)发愁,那么Struts将会是你的不二选择。

由于Struts2实现了Action类(普通POJO对象),所以测试编写代码所需的工作量较少。使用框架API,耦合变得更容易,有助于调整拦截器。

优点和缺点

Struts2最大的特点是不必重写或实现Action类,同时IT工程师为多个操作创建重复设置代码也不再是一个问题,因为拦截器会处理它。

Struts最大的缺点就是不够灵活。

3、Hibernate

虽然Hibemate不在RebelLabs的排行榜中,但它仍是值得一提的Java框架。这个映射Java框架解决了对象和关系不匹配的问题,采用持续的数据库访问操作来代替高层次的对象处理功能。每个企业的应用程序都是不同的,所以Hibernate配备了一个强大啊的功能套件,帮助后端开发人员微调数据访问层。这是一个高级的ORM框架,允许您对Java对象(实体)执行数据库操作,利用Hibernate缓存将数据从Java环境持久化到数据库是一个持久化的概念。

优点和缺点

Hibernate只要对原有代码做一些微小的改动就可以帮助你和任何数据库进行通信,它弥补了对象和关系之间的差距。除了这个优势,它还有:

1.不管是Oracle,还是Db2亦或是MySQL,Hibernate是独立于DB存在的。

2.缓存机制对类似查询进行优化。

3.支持N+1或懒加载。

尽管Hibernate的优势很多,但是它不允许多个插入,不支持JDBC的一些查询,不适用于表比较少的小规模项目。

4、JSF

作为JavaEE的一部分,Oracle支持JavaServerFaces。虽然这不是Java快速开发的最好框架,但是因为Oracle提供了大量的文档所以很容易上手。如果你不离开JavaEE环境,JSF没有外部依赖项,但功能很强大,它拥有的丰富的库和工具(包括一个易于创建用户界面的工具集),无论你的应用程序看起来有多么复杂,它都可以支持。

优点和缺点

如上所述,JSF是JavaEE的一个组成部分。因此,开发人员可以利用IDE软件套件以及来自行业领先供应商的高水准的支持。

但是事情都有两面性,JavaServerFaces太庞大,所以没有Web开发经验或者技术不纯熟的人可能难以掌握。

5、Vaadin

Vaadin是在现代开发人员在创建业务应用程序并使用GWT渲染结束网页时必选的流行框架之一。Vaadin利用一个众所周知的基于组件的方法,快速适应浏览器发生的变化,从而减轻开发人员的负担。Vaadin通过传达对浏览器的更改来消除开发人员的负担。丰富的UI组件、各种各样的部件和控件时代程序员能够随时随地构建一个酷炫的应用程序。

优点和缺点

在Java或HTML的布局构建中,Vaadin提供了可用的MVC或MVP绑定数据的方法。支持拖放以及其他突出的功能简化了对Java应用程序的单页UI的创建。

因为Vaadin需要将每个事件回发到服务器,所以或导致移动应用程序的UI迟缓。

6、GoogleWebToolkit

GWT是一个允许用户创建和优化复杂的基于Web的应用程序的免费的Java框架。GWT的软件开发套件提供核心JavaAPI和小部件,构建之后就可以编译为JavaScript的应用程序。

优点和缺点

使用GoogleWebToolkit,您可以获得单个代码库(Java中的浏览器和服务器端编程),从而简化开发和调试过程。与其他技术的简单集成允许程序员在Web页面中嵌入GWT小部件。在GWT的帮助下还可以自定义窗口小部件功能。

但是GWT不适用于纯HTML和后期动态内容布局,因此无法满足网页设计师的需求。

7、Grails

这个特别的Web框架被认为是可以提高工程师生产力的动态工具。它拥有独树一帜的API实际,合理的默认值以及约定的配置范例。与Java的无缝集成使其成为全世界很多程序员的最佳选择。Grails拥有一系列强大的功能,例如基于Spring的依赖注入和各种插件,同时提供创建现代Web应用程序所需的一切。

优点和缺点

Grails可以快速搭建新项目,脚手架为编码人员节省了大量宝贵的时间。Grails拥有一个巨大的库,提供超过900种不同的易于安装的插件。Grails是一个全栈开发的Java框架,它的对象关系映射涵盖了庞大的功能,使其成为一个重量级的软件。


小橘子
4楼 · 2021-11-09 10:04

Java主流框架是:SSM
1Spring,它常年雄踞于企业开发必选框架之首,需要开发者从原理、应用、扩展等全方位角度掌握,最终可以搭建属于我们的平台。
2Mybatis,通过熟练运用源代码我们可以深入、详细、系统的了解Mybatis的每一个脉络
3SpringMVC,从企业的实际应用到框架的底层原理,深入讲解MVC机制,手动实现SpringMVC框架实现过程不仅会应用,我们可以实现自己的SpringMVC,直通架构的必修课

相关问题推荐

  • 回答 36

    看军事新闻的同学应该都知道,一艘航空母舰作战能力虽然很强,但是弱点太明显,就是防御能力太差,单艘的航空母舰很少单独行动,通常航空母舰战斗群才是主要军事力量,你可以把单艘航母理解为的单体应用(防御差,机动性不好),把航母战斗群(调度复杂,维护...

  • 回答 31

    初始化过程细节:首先进行的就是将服务装载到容器中,然后准备注册服务。和Spring中启动过程类似,Spring启动时,将bean装载进容器中的时候,首先要解析bean。所以dubbo也是先读配置文件解析服务。解析服务:基于dubbo.jar内的META-INF/spring.handlers配置,...

  • 回答 27

    分布式事务 指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上 。换成比较容易理解的话,就是多个事务之间再保持事务的特性,也就是多个事务之间保证结果的一致性。分布式事务解决方案1、基于XA协议的两阶...

  • 什么是接口幂等性?2021-02-24 18:21
    回答 25

    1. 接口调用存在的问题        现如今我们的系统大多拆分为分布式SOA,或者微服务,一套系统中包含了多个子系统服务,而一个子系统服务往往会去调用另一个服务,而服务调用服务无非就是使用RPC通信或者restful,既然是通信,那么就有可能在服务器处理...

  • 回答 21

    前提是另外一个bean在bean容器中能找到

  • 回答 22

    1.View——表示层1.1准备数据实现方式:struts,servlet等1.2显示数据实现方式:extjs,jsp,jquery,html等2.Service——业务层实现方式:drools等3.Dao——数据访问层实现方式:hibernate、mybatis等...

  • SpringCloud Netflix和Sprin2020-11-12 09:41
    回答 8
    已采纳

    SpringCloud Netflix和SpringCloud Alibaba的区别如下图:

  • 回答 16

    哨兵(Sentinel)是 redis 的高可用性解决方案,前面我们讲的主从复制它是高可用的基础,需要人工介入才能完成故障转移,哨兵可以解决这个问题,在主从复制情况下,当主节点发生故障时,哨兵可以自动的发现故障并且完成故障转移,实现真正的 redis 高可用。在...

  • 回答 8

    redis为什么会有高并发问题redis的出身决定Redis是一种单线程机制的nosql数据库,基于key-value,数据可持久化落盘。由于单线程所以redis本身并没有锁的概念,多个客户端连接并不存在竞争关系,但是利用jedis等客户端对redis进行并发访问时会出现问题。发生连...

  • 回答 8

    用dubbo是想利用分布式集群的形式来提高服务的并发量,适用与大型项目.如果不用它还想提高并发另一个解决方案是springCloud+微服务.适合大中小型项目.当前对并发要求的项目还是很多的,所以dubbo用的也相对较多.建议如果是初学者可以跳过dubbo直接学习第二个方...

  • 回答 4

    不需要。一般是service分出去。然后其它放在web层即一个jar为service业务处理,一个为web层war包

  • 回答 7

    在回答这个问题之前,我们先回答一下什么是锁。普通的锁,即在单机多线程环境下,当多个线程需要访问同一个变量或代码片段时,被访问的变量或代码片段叫做临界区域,我们需要控制线程一个一个的顺序执行,否则会出现并发问题。如何控制呢?就是设置一个各个线...

  • 回答 6

     springmvc位于表现层,主要与浏览器进行交互(接收和响应浏览器请求)。springmvc采用MVC设计模型,模型由model、view和controller组成。         model(模型):对应JavaBean         view(视图):对应JSP         controller(控制器)...

没有解决我的问题,去提问