Java经过将近20年的发展壮大,框架体系已经丰满俱全;从前端到后台到数据库,从智能终端到大数据都能看到Java的身影,个人感觉做后台进要求越来越高,越来越难。
为什么现在Java程序员越来越难做,一是Java框架体系众多,学习成本提高,每一个细分问题又有很多可选方案;二是经过移动互联网的洗礼,以前单机单线程那一套行不通了,现在面临的是高并发低延迟,你可能要掌握缓存、分布式、集群、微服务等;物联网时代渐渐到来,将IT行业技能要求推向一个新高度,你的产品要提供7x24小时不间断服务,就像家里的自来水管,打开阀门水不间断流出来。面对成千上万的智能终端上传的海量数据,从数据压缩上传、优化存储、管理、备份防灾、分析利用等方面,要掌握的技能还很多。
所以我把这些年收集的资源共享给大家。大致分为Java基础框架,网络通讯相关框架,论文算法类、工具类型框架四个模块。
一、Java基础框架
-
spring Framework 对于java读者来说spring再熟悉不过了,它就像一个拥有无限插孔的插线板,大部分框架都可以集成到spring容器当中即插即用,当然魔力不仅于此。
-
spring所有开源项目: github.com/spring-proj…
-
spring官方文档: spring.io/docs/refere…
-
springboot官方Demo: github.com/spring-proj…
-
springboot推荐Demo: github.com/dyc87112/Sp…
-
相关书籍:《spring技术内幕》
-
ORM Framework Hibernate vs mybatis Hibernate和mybatis都是目前最流行的ORM框架,各有优缺,仁者见仁。
-
Hibnate官方文档: hibernate.org/orm/documen…
-
Hibernate开源地址: github.com/hibernate/h…
-
马士兵Hibernate入门教程: blog.csdn.net/tanyit/arti…
-
Hibernate映射: blog.csdn.net/bigtree_372…
-
mybatis官方文档: www.mybatis.org/mybatis-3/
-
mybatis开源地址: github.com/mybatis/myb…
-
mybatis教程: blog.csdn.net/techbirds_b…
-
JPA规范: blog.csdn.net/jia20003/ar…
-
二、网络通讯相关框架
-
dubbo分布式服务框架
-
dubbo官方文档: dubbo.io/Developer+G…
-
dubbo开源地址: github.com/alibaba/dub…
-
dubbo入门: blog.csdn.net/top_code/ar…
-
dubbo集成到springboot: github.com/teaey/sprin…
-
dubbo架构设计详解: shiyanjun.cn/archives/32…
-
-
zookeeper分布式应用程序协调服务
-
官方文档: zookeeper.apache.org
-
开源地址: github.com/apache/zook…
-
-
netty网络应用通讯框架
-
官方文档: netty.io/wiki/index.…
-
开源地址: github.com/netty/netty
-
开源案例: github.com/blynkkk/bly…
-
原理实现讲解: www.infoq.com/cn/articles…
-
相关书籍:《Netty权威指南(第2版)》
-
-
MQ消息队列 知名的消息队列框架有ActiveMQ、RabbitMQ、Kafka,RocketMQ这些,根据需求场景选择不同的消息队列框架。
-
什么是消息队列: blog.csdn.net/shaobingj12…
-
各种消息队列框架对比: blog.csdn.net/sunxinhere/…
-
RocketMQ原理与实践: www.jianshu.com/p/453c6e7ff…
-
RocketMQ入门: www.jianshu.com/p/ba2934571…
-
-
序列化框架protobuf protobuf是google 的一种数据交换的格式,类似json和xml,它独立于语言,独立于平台。作为一种效率和兼容性都很优秀的二进制数据传输格式,可以用于诸如网络传输、配置文件、数据存储等诸多领域。
-
开源地址: github.com/google/prot…
-
netty中使用protobuf: github.com/longdafeng/…
-
框架部分暂时介绍这么多,各个框架间可灵活组合使用;之所以整理出来分享给大家,有以下几个原因:
-
它们都是开源的,并且得到广泛使用和验证
-
它们是解决某个问题的最佳选择
-
足够好的灵活性、扩展性让你轻松应对需求迭代
-
它们都是基础框架,基础意味着重要,就好比房子的稳固程度取决于地基是否稳固
还有吗?当然有。
三、算法类
-
发布/订阅模式: blog.csdn.net/xuchuangfen…
-
一致性Hash算法: www.codeproject.com/articles/56…
-
Paxos分布式选举算法:
-
《Paxos Made Simple》: www.microsoft.com/en-us/resea…
-
《The-Part-Time-Parliament》: www.microsoft.com/en-us/resea…
-
-
HDFS架构设计: hadoop.apache.org/docs/r1.0.4…
-
Google MapReduce论文中文版: www.open-open.com/lib/view/op…
-
Google BigTable论文中文版: dblab.xmu.edu.cn/post/google…
四、工具类
工具类不详细罗列网址了,可以自己去搜索一下。
-
mvn仓库: mvnrepository.com/
-
Json库:fastjson / Gson
-
Collections库:Guava
-
Html内容匹配:Jsoup
-
Http Client:Apache HttpClient
-
JDBC Pools: Commons DBCP / Druid
-
模拟测试:Mockito
-
代码简化:lombok
-
图片处理:Thumbnails
-
Mail:JavaMail API (compat)
-
定时器:Quartz
-
权限控制:Shiro / spring Security
-
长连接:spring-websocket
-
即时通讯:Openfire
-
NoSQL:Jedis / spring-data-redis / spring-data-mongoDB