专栏首页慕容千语的架构笔记Java开发八年来总结的知识脑图,以及我的进阶线路规划。

Java开发八年来总结的知识脑图,以及我的进阶线路规划。

学习一个新的技术时,其实不在于跟着某个教程敲出了几行、几百行代码,这样你最多只能知其然而不知其所以然,进步缓慢且深度有限,最重要的是一开始就对整个学习路线有宏观、简洁的认识,确定大的学习方向,这样才能事半功倍。

我们经常会遇到这样的情况:一开始学习一门新技术的时候,面对着很多很多陌生的名词,无从下手,一度想要放弃。本文首先会给出关于java后台开发的一些建议学习路线,接着简单解释一些应用到的高频技术,帮助大家理解和学习。

2.Java后台开发知识一览

1、后端

WEB服务器:Weblogic、Tomcat、WebSphere、JBoss、Jetty

核心框架:Spring Framework

分布式服务框架Dubbo

安全框架:Apache Shiro

视图框架:Spring MVC

服务端验证:Hibernate + Validator

布局框架:SiteMesh

工作流引擎:Activiti

任务调度:Spring Task + Quartz

持久层框架:MyBatis + MyBatis-Plus

数据库连接池:Alibaba Druid

缓存框架:Ehcache 、Redis

日志管理:SLF4J 、Log4j

会话管理:Spring-Session

工具类:Apache Commons、Jackson 、Xstream、Dozer 、POI

消息队列:ActiveMQ

云存储:阿里云 OSS 腾讯云 COS 七牛云

版本管理: git(推荐)svn

2.高频技术(可大致浏览,作为目录查看)

Spring

每个模块的功能如下:

核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是BeanFactory,它是工厂模式的实现。

Spring 上下文:Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。

Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。

Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理。

Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。

Spring Web 模块:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts 的集成。

Spring MVC 框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。

RESTful风格

** Mybatis**

MyBatis

是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

Hibernate

Redis

Redis

是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。特点:

1.Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

2.Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

3.Redis支持数据的备份,即master-slave模式的数据备份。

Zookeeper

Zookeeper 分布式服务框架是 Apache

Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等等。

DUBBO

DUBBO

是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。

一到五年经验,应该怎么走,学习方向路线是什么,需要掌握什么技术呢?请看下方:

阅读源码

程序员每天都和代码打交道。经过数年的基础教育和职业培训,大部分程序员都会「写」代码,或者至少会抄代码和改代码。但是,会读代码的并不在多数,会读代码又真正读懂一些大项目的源码的,少之又少。这也造成了很多错误看源码的方式。

那要如何正确的分析源码呢?

分布式架构

随着我们的业务量越来越大和越重要,单体的架构模式已经无法对应大规模的应用场景,而且系统中决不能存在单点故障导致整体不可用,所以只有垂直或是水平拆分业务系统,使其形成一个分布式的架构,利用分布式架构来冗余系统消除单点的故障,从而提高整个系统的可用性。同时分布式系统的模块重用度更高,速度更快,扩展性更高是大型的项目必不可少的环节。

微服务

关于微服务架构的取舍

1、在合适的项目,合适的团队,采用微服务架构收益会大于成本。

2、微服务架构有很多吸引人的地方,但在拥抱微服务之前,也需要认清它所带来的挑战。

3、需要避免为了“微服务”而“微服务”。

4、微服务架构引入策略 – 对传统企业而言,开始时可以考虑引入部分合适的微服务架构原则对已有系统进行改造或新建微服务应用,逐步探索及积累微服务架构经验,而非全盘实施微服务架构。

性能优化

我们不仅仅对项目要运筹帷幄,还要能解决一切性能问题。只有深入学习JVM底层原理,Mysql底层优化以及Tomcat调优,才能达到知其然,知其所以然的效果。除了性能优化之外,也能提供通用的常见思路以及方案选型的考虑点,帮助大家培养在方案选型时的意识、思维以及做各种权衡的能力。

并发编程

主要培养编程者深入了解最底层的运作原理,加强编程者逻辑思维,这样才能写出高效、安全、可靠的多线程并发程序。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java程序员进阶架构师所需要掌握的架构思维转变(以及技术支撑)

    很多人做java开发2,3年后,都会感觉自己遇到瓶颈。什么都会又什么都不会,如何改变困境,为什么很多人写了7,8年还是一个码农,工作中太多被动是因为不懂底层原理...

    慕容千语
  • Java学习记录——探究Spring Boot与Spring Cloud之间的关系

    SpringBoot相当于脚手架,借助他可以快速搭建房子,它本身不具备任何功能属性,只是普通房间,没有其他任何功能。

    慕容千语
  • 2019BATJ面试题汇总详解:MyBatis+MySQL+Spring+Redis+多线程

    如何通过HibernateDaoSupport将Spring和Hibernate结合起来?

    慕容千语
  • 面向Java程序员的15个SpringBoot面试问题和答案

    大家好,如果您正在为下一次Java面试做准备,并且准备了有关Spring框架的工作描述,那么您还应该准备一些Spring引导面试问题,以避免失望。SpringB...

    麦叔
  • Java程序员跳槽应该学习哪些技术?

    工作1-5年,当我们向老板提出加薪的时候,或者跳槽去“捡”offer的时候,我们底气够吗?

    java架构师
  • springboot面试题十题

    多年来,随着新功能的增加,spring变得越来越复杂。只需访问https://spring.io/projects页面,我们就会看到可以在我们的应用程序中使用的...

    用户5224393
  • 这10道springboot常见面试题你需要了解下

    多年来,随着新功能的增加,spring变得越来越复杂。只需访问https://spring.io/projects页面,我们就会看到可以在我们的应用程序中使用的...

    JAVA葵花宝典
  • 具有一到五年开发经验的程序员该如何提升自己?

    敢不敢不给涨薪就“挥一挥衣袖,不带走一个bug”?是不是提出要求后你的主管、经理立刻

    zhisheng
  • 这 10 道 Spring Boot 常见面试题你需要了解下

    多年来,随着新功能的增加,spring变得越来越复杂。只需访问https://spring.io/projects页面,我们就会看到可以在我们的应用程序中使用的...

    Java团长
  • Spring Boot 2.1.0 已发布,7 个重大更新!

    距离《重磅:Spring Boot 2.0 正式发布!》已经过去大半年了,而 Spring Boot 2.1.0 在 10 月底就发布了,我们来看下 Sprin...

    Java技术栈

扫码关注云+社区

领取腾讯云代金券