Java框架高难度代码 java框架难吗( 二 )


(2)接收调用请求
触发条件:调用Mybatis提供的API
传入参数:为SQL的ID和传入参数对象
处理过程:将请求传递给下层的请求处理层进行处理 。
(3)处理操作请求 触发条件:API接口层传递请求过来
传入参数:为SQL的ID和传入参数对象
处理过程:
(A)根据SQL的ID查找对应的MappedStatement对象 。
(B)根据传入参数对象解析MappedStatement对象,得到最终要执行的SQL和执行传入参数 。
(C)获取数据库连接 , 根据得到的最终SQL语句和执行传入参数到数据库执行,并得到执行结果 。
(D)根据MappedStatement对象中的结果映射配置对得到的执行结果进行转换处理 , 并得到最终的处理结果 。
(E)释放连接资源 。
(4)返回处理结果将最终的处理结果返回 。
MyBatis 最强大的特性之一就是它的动态语句功能 。如果您以前有使用JDBC或者类似框架的经历,您就会明白把SQL语句条件连接在一起是多么的痛苦 , 要确保不能忘记空格或者不要在columns列后面省略一个逗号等 。动态语句能够完全解决掉这些痛苦 。
四、Dubbo
Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC(远程过程调用协议)远程服务调用方案,以及SOA服务治理方案 。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候 , 才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架 。
1、透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入 。
2、软负载均衡及容错机制 , 可在内网替代F5等硬件负载均衡器,降低成本,减少单点 。
3、 服务自动注册与发现,不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,并且能够平滑添加或删除服务提供者 。
节点角色说明:
Provider: 暴露服务的服务提供方 。
Consumer: 调用远程服务的服务消费方 。
Registry: 服务注册与发现的注册中心 。
Monitor: 统计服务的调用次调和调用时间的监控中心 。
Container: 服务运行容器 。
五、Maven
Maven这个个项目管理和构建自动化工具 , 越来越多的开发人员使用它来管理项目中的jar包 。但是对于我们程序员来说,我们最关心的是它的项目构建功能 。
六、RabbitMQ
消息队列一般是在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量 。
RabbitMQ是用Erlang实现的一个高并发高可靠AMQP消息队列服务器 。
Erlang是一门动态类型的函数式编程语言 。对应到Erlang里,每个Actor对应着一个Erlang进程 , 进程之间通过消息传递进行通信 。相比共享内存,进程间通过消息传递来通信带来的直接好处就是消除了直接的锁开销(不考虑Erlang虚拟机底层实现中的锁应用) 。
AMQP(Advanced Message Queue Protocol)定义了一种消息系统规范 。这个规范描述了在一个分布式的系统中各个子系统如何通过消息交互 。
七、Log4j
日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别 。
八、Ehcache
EhCache 是一个纯Java的进程内缓存框架 , 具有快速、精干等特点,是Hibernate中默认的CacheProvider 。Ehcache是一种广泛使用的开源Java分布式缓存 。主要面向通用缓存,Java EE和轻量级容器 。它具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,一个gzip缓存servlet过滤器,支持REST和SOAP api等特点 。