哪些java项目代码很好 优秀的java代码( 四 )


AOP用来封装横切关注点,具体可以在下面的场景中使用:
Authentication 权限
Caching 缓存
Context passing 内容传递
Error handling 错误处理
Lazy loading 懒加载
Debugging 调试
logging, tracing, profiling and monitoring 记录跟踪 优化 校准
Performance optimization 性能优化
Persistence 持久化
Resource pooling 资源池
Synchronization 同步
Transactions 事务
三、Mybatis
MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架 。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索 。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects , 普通的 Java对象)映射成数据库中的记录 。
总体流程:
(1)加载配置并初始化
触发条件:加载配置文件
将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映射配置、执行的SQL语句、结果映射配置) , 存储在内存中 。
(2)接收调用请求
触发条件:调用Mybatis提供的API
传入参数:为SQL的ID和传入参数对象
处理过程:将请求传递给下层的请求处理层进行处理 。
(3)处理操作请求
触发条件:API接口层传递请求过来
传入参数:为SQL的ID和传入参数对象
处理过程:
(A)根据SQL的ID查找对应的MappedStatement对象 。
(B)根据传入参数对象解析MappedStatement对象,得到最终要执行的SQL和执行传入参数 。
?获取数据库连接 , 根据得到的最终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
消息队列一般是在项目中 , 将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量 。

推荐阅读