03.03 有哪些Java源代码看了后让你收获很多?

Java架构技术


曾经读过Erudika/para的源码,此源码托管在github,大致是2014年前后开源的云计算通用后端框架,基于spring boot体系,原生集成持久化(默认H2 DB,通过配置方式实现MongoDB、mysql等常用关系数据库的支持)、缓存(默认Caffeine、支持配置参数的Hazelcast、redis等)和搜索(默认Lucene,支持配置参数的Elasticsearch)三大功能,快速开发resful风格的API接口,其强大的分层思想和通用性设计能力,让我的架构思维有了很大的进步,其开源版本对于中小团队实践spring boot+spring cloud打通云计算服务具有借鉴意义,目前最新的版本为1.29.1。

下面,我就简单的分享Erudika/para源码官网的介绍,解释不到位的地方希望大家批评指正,同时,这款较为优秀的开源项目也推荐给大家去学习和使用。

特性:

多租户技术【多重租赁技术】支持——每个应用程序都有自己的表、索引和缓存;用Amazon的签名算法进行安全的JSON;数据库动态性,专为可伸缩和分布式数据存储而设计全文搜索(Elasticsearch);分布式对象缓存(hazelcast,高可扩展内存数据网格);物联网支持与AWS(业务流程管理开发平台)和(基于云计算的操作系统,Windows Azure的主要目标是为开发者提供一个平台,帮助开发可运行在云服务器、数据中心、Web和PC上的应用程序)的集成;灵活的安全LDAP(LDAP是轻量目录访问协议),社交登录,CSRF(跨站请求伪造)保护;无状态的客户端认证与JSON的Web令牌(JWT,网络应用环境间传递声明而执行的一种基于JSON的开放标准,JWT是由三段信息构成的,将这三段信息文本用);用于客户端访问控制的简单但有效的资源权限;鲁棒约束验证基于JSR-303和Hibernate Validator;持久性、索引和缓存操作的每个对象控制;模块化设计的谷歌Guice(依赖注入框架(IOC))和支持插件;网络控制台-管理用户界面。


夕阳雨晴


从事java多年了,如何能阅读一些牛人写的底层源码,那么对自己的编程思想和技术都是非常有帮助的。我认为,java中jdbc源码,Spring源码都是非常值得读的。下面对一些阅读过的源码进行总结。

一、jdbc操作数据库源码

java数据库源码阅读 ,先读读Sun的JDBC规范。 我想你一定写过JDBC的代码,那么这时候可以开始阅读源码了。 如果了解JDBC规范(接口),那么它的实现,JDBC Driver就一定要开始了解,我的建议是,读读mysql的jdbc驱动,因为它开源、设计优雅。比如你可以知道mysql的JDBC驱动,如何通过socket数据包(connect、query),给这个C++开发的mysql服务器交互的。 通过上面的阅读,你可以知道,你的业务代码、JDBC规范、JDBC驱动、以及数据库,它们是如何一起协作的。 如果你了解这些内幕,那么你再学习Hibernate、iBatis等持久化框架时,就会得心应手的。 读过JDBC驱动,那么下一步一定要读读数据库了。而正好有一个强大的数据库是用Java开发的,

二、Socket通信源码

学习Socket通讯实现,特别是C/S架构设计

3、模块化设计。它们都是基于module的,你既可以了解模块化架构,还可以了解模块化的技术支撑:Java虚拟机的ClassLoader的应用场景。

4、Event Driven架构。虽然GUI都是Event驱动的,但Spark的设计尤其优雅 这么说吧,读它们的源码,你会为做一名程序员而自豪,因为无论是他们的架构设计还是代码,都太漂亮了。 Java企业级应用 当然了,就是Hibernate、Spring这类框架。 在读Spring源码前,一定要先看看Rod Johnson写的那边《J2EE Design and Development》,它是Spring的设计思路。注意,不是中文版,中文版完全被糟蹋了。

三、hadoop大数据处理源码

hadoop发展到现在这个阶段,代码已经变得非常庞大臃肿,如果你直接阅读最新版本的源代码,难度比较大,需要足够的耐心和时间,所以,如果你觉得认真一次,认真阅读一次hadoop源代码,一定要有足够的心理准备和时间预期。其次,需要注意,阅读Hadoop源代码的效率,因人而异,如果你有足够的分布式系统知识储备,看过类似的系统,则能够很快地读它的源代码进行通读,并快速切入你最关注的局部细节,比如你之前看过某个分布式数据库的源代码,对分布式系统的网络通信模块,调度模块等有一定了解,这对阅读hadoop源代码有极大帮助;如果你是一个初学者,对hadoop一无所知,只了解一些java语法,那阅读hadoop源代码是极具挑战的一件事情,尤其是从无到开始入门的过程,是极度煎熬和困惑的,这时候需要你在阅读代码过程中,不断补充缺乏的相关知识(比如RPC,NIO,设计模式等),循序渐进,直到入门。

电脑学堂


一般学习框架,比如struts、hibernate、spring的时候,会要求多看看源代码。另外,java基础中的集合框架部分可以看看,StringBuffer部分看过之后你竟然发现他的底层调用居然是Stringbuilder。另外,就是javaio的源码、servlet和jsp的源码,最后,是tomcat的源码!


分享到:


相關文章: