j**a框架有哪些常用框架

时间:2021.11.05 发布人:qingtian83

j**a框架有哪些常用框架

已解决问题

谷歌qingtian83用户在2021.11.05提交了关于“楚留香j**a框架有哪些常用框架”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2025-03-03T12:41:54。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,滴水之恩,来日我当涌泉相报 !

希望以下的回答,能够帮助你。

第1个回答

用户名:匿名用户  

十大常用框架:

一、SpringMVC

二、Spring

三、Mybatis

四、Dubbo

五、M问答**en

六、RabbitMQ

七、Log4j

八、Ehcache

九、Redis

十、Shiro

延展阅读:

一、SpringMVC

SpringWebMVC是一种基于J**伯广游际印过伯胞照a的实现了WebMVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模东厂陆妒写围短式的思想,将web层顶营进行职责解耦,基于请求驱动指的就是使用础农请求-响应模型,框架的目的就是帮助我们简化开发,SpringWebMVC也是要简化我们日常Web开发的。

模型(家逐Model)封装了应用程序的**和一般他们会组成的POJO。

视图(View)是负责呈现模型苗殖待充车渐承双众**和一般它生成的h**TML输出,客户端的浏览器能够解释。

控制器(Controller)负责处理用户的请求,并建立适当的比美助庆干模型,并把它传递给视图渲染。

Spring的web模型-视图-控制器(MVC)框架是围绕器门话吸顶源着处理所有的h**TTP请求和响应的DispatcherServlet的设计。

SpringWebMV全线限但著斯C处理请求的流程

具体执行步骤如下:

1、首先用户发送请求————>前端控制器,前端控制器根据请求信息(如URL)来决定选择哪一个页面控制器进行处什振措火理并把请求委托给它,即以亲货显也前的控制器的控制逻辑部分;图2-1中的1、2步骤;

2、页面控制器接收到请求后,制事体时优船即入帮粮急进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在SpringWebMVC中叫命令对象,并进行验,然后将命令对象委托给业务对象进行处理;处理完毕后返回一下继学倒喜滑顶乱船了个ModelAndView(模型**和逻辑视图名);图2-1中的3、4、5步骤;

3、前端控制器收回控制苏洋调千控食祖部定息水权,然后根据返回的逻辑视图名多穿南细省号代,选择相应的视图进行渲染,并把模型**传入以便视图渲染;图2-1中的步骤6、7;

4、前端控制器再次收回控制权,将响应返回给用户,图2-1中的步骤8;至此整个结束。

二、Spring

2.1、IOC容器:

IOC容器就是具有依赖注入功能的容器,IOC容器负责实例化、**、配置应用程序中的对象及建立这些对象间的依赖。应用程序无需直接在代码中new相关的对象,应用程序由IOC容器进行组装。在Spring中BeanFactory是IOC容器的实际代表者。

2.2、AOP:

简单地说,就是将那些与业水市跟费红样务无关,却为业务模块所**同调用的逻辑或责任封装起来,便于减少服绝简系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。AOP代表的是一个横向的关系

AOP用来封装横切关注点,具体可以在下面的场景中使用:

Authentication权限

三、Myb原验县背劳氢慢全帝atis

MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和J**a的POJOs(PlainOldJ**aObjects,普通的J**a对象)映射成**库中的记录。

总体流程:

(1)加载配置并初始化

(2)接收调用请求

(3)处理操作请求触发条件:API接口层传递请求过来

处理过程:

(A)根据SQL的ID查找对应的MappedStatement对象。

(B)根据传入参数对象解析MappedStatement对象,得到最终要执行的SQL和执行传入参数。

(C)获取**库连接,根据得到的最终SQL语句和执行传入参数到**库执行,并得到执行结果。

(D)根据MappedStatement对象中的结果映射配置对得到的执行结果进行转换处理,并得到最终的处理结果。

(E)释放连接资源。

(4)返回处理结果将最终的处理结果返回。

MyBatis最强大的特性之一就是它的动态语句功能。如果您以前有使用JDBC或者类似框架的经历,您就会明白把SQL语句条件连接在一起是多么的痛苦,要确保不能忘记空格或者不要在columns列后面省略一个逗号等。动态语句能够完全解决掉这些痛苦。

四、Dubbo

Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC(远程过程调用协议)远程服务调用方案,以及SOA服务治理方案。简单的说,**bbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有**bbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架。

1、透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入。

2、软负载均衡及容错机制,可在内网替代F5等硬件负载均衡器,降低成本,减少单点。

3、服务自动注册与发现,不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,并且能够平滑添加或删除服务提供者。

节点角色说明:

五、M**en

M**en这个个项目管理和构建自动化工粳越来越多的开发人员使用它来管理项目中的jar包。但是对于我们程序员来说,我们最关心的是它的项目构建功能。

六、RabbitMQ

消息队列一般是在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量。

RabbitMQ是用Erlang实现的一个高并发高可靠AMQP消息队列服务器。

Erlang是一门动态类型的函数式编程语言。对应到Erlang里,每个Actor对应着一个Erlang进程,进程之间通过消息传递进行通信。相比**享内存,进程间通过消息传递来通信带来的直接好处就是消除了直接的锁开销(不考虑Erlang虚拟机底层实现中的锁应用)。

AMQP(AdvancedMessageQueueProtocol)定义了一种消息系统规范。这个规范描述了在一个分布式的系统中各个子系统如何通过消息交互。

七、Log4j

日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。

八、Ehcache

EhCache是一个纯J**a的进程内缓存框架,具有快速、精干等特点,是h**ibernate中默认的CacheProvider。Ehcache是一种广泛使用的开源J**a分布式缓存。主要面向通用缓存,J**aEE和轻量级容器。它具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,一个gzip缓存servlet过滤器,支持REST和SOAPapi等特点。

优点:

缺点:

2、不能保**的安全:当突然kill掉j**a的时候,可能会**生冲突,EhCache的解决方法是如果文件冲突了,则重建cache。这对于Cache**需要保存的时候可能不利。当然,Cache只是简单的加速,而不能保**的安全。如果想保**的存储安全,可以使用BekeleyDBJ**aEdition版本。这是个嵌入式**库。可以确保存储安全和空间的利用率。

九、Redis

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sortedset–有序集合)和hash(哈希类型)。这些**类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是**性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保效率,**都是缓存在内存中。区别的是redis会周期性的把更新的**写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-sl**e(主从)同步。

Redis**库完全在内存中,使用磁盘仅用于持久性。相比许多键值**存储,Redis拥有一套较为丰富的**类型。Redis可以将**复制到任意数量的从服务器。

1.2、Redis优点:

(1)异常快速:Redis的速度非常快,每秒能执行约11万集合,每秒约81000+条记录。

(2)支持丰富的**类型:Redis支持最大多数开发人匝经知道像列表,集合,有序集合,散列**类型。这使得它非常容易解决各种各样的问题,因为我们知道哪些问题是可以处理通过它的**类型更好。

(3)操作都是**性:所有Redis操作是**的,这保了如果两个客户端同时访问的Redis服务器将获得更新后的值。

(4)多功能实用工竞Redis是一个多实用的工粳可以在多个用例如缓存,消息,队列使用(Redis原生支持发布/订阅),任何短暂的**,应用程序,如Web应用程序会话,网页命中计数等。

1.3、Redis缺点:

十、Shiro

ApacheShiro是J**a的一个安全框架,旨在简化身份验和授权。Shiro在J**a**和J**aEE项目中都可以使用。它主要用来处理身份认,授权,企业会话管理和加密等。Shiro的具体功能点如下:

(1)身份认/登录,验用户是不是拥有相应的身份;

(2)授权,即权限验,验某个已认的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验某个用户是否拥有某个角色。或者细粒度的验某个用户对某个资源是否具有某个权限;

(3)会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中;会话可以是普通J**a**环境的,也可以是如Web环境的;

(4)加密,保护**的安全性,如密码加密存储到**库,而不是明文存储;

(5)Web支持,可以非常容易的集成到Web环境;

(6)shiro支持多线程应用的并发验,即如在一个线程中开启另一个线程,能把权限自动传播过去;

(7)提供测试支持;

(8)允许一个用户假装为另一个用户(如果他们允许)的身份进行访问;

(9)记住我,这个是非常常见的功能,即一次登录后,下次再来的话不用登录了。