课程安排说明:
Java高级开发工程师就业班分为五个阶段,分别是夯实基础、初识JavaWeb、企业级框架、微服务 + 分布式 + 架构思维、最后一个阶段安排入职企业实习。这是融职教育历经多年的培训经验总结出来的, 而且每个阶段都有对应的项目案例。 同样的课程有两种学习方式, 一种是”面授“进班学习,这种学习模式特别适合零基础的小白学习成长。 面授班进度统一,完全按照课程安排进行授课,每天4个小时授课,安排8个小时练习, 作业、笔记、练习、测试、学习资源下载等全部在自主研发的学习系统上完成,为自己的成长记录留痕。 另一种模式是”坐班“的学习模式,按照规定的时间上下班,在自己的工位上在学习系统上学习,课程内容和面授班是同步的,技术总监身边指导答疑解惑。 这种模式适合有基础或学习效率高的学员,最快可以一天完成两关的内容,6个月的课程,最快三个月毕业,当然也可以两天完成一关的内容。
阶段一:夯实基础
掌握JAVA基本语法,常用工具类,集合(List,Set,Map),IO流,网络编程,多线程,注解反射等。学完这些内容,是我们作为后续高级课程学习的基础。一些控制台程序均可以独立完成。
模块 | 章节 | 知识点 |
JAVA基础 | JAVA环境搭建 | • java语言发展史 • 计算机基础知识:二进制,字节,八进制,十六进制,cmd,dos指令 • JDK的下载和安装:JDK8,Window10,mac • PATH环境变量的配置:javahome • 第一个java程序HelloWorld:nodepade编写,讲解注意事项 • doc命令编译、运行java程序 • 安装eclipse • eclipse中创建java工程 • eclipse替换原版本 • 案例:eclipse中编写自动关机程序 |
JAVA基础语法 | • JAVA的注释 • 常量与变量的概念 • 变量的语法:数据类型(int,String,double),变量名(关键字,标识符),变量值 • 扩展数据类型:数据类型分类等 • 接收用户输入:变量的作用域 • 算术、赋值(自增,自减)、关系、逻辑,赋值,三目运算符 • 字符串连接符 • 转义字符:\n,\t等 • 阿里巴巴编程规范:缩进等 | |
流程控制 | • if分支:if-else,多分支if,if嵌套,使用场景 • switch:语法,与if的对比 • while循环 • Debug断点调试的使用 • do-while循环 • for循环 • 各种循环语句的区别和应用场景 • 循环跳转控制语句:break,continue • 嵌套循环 • 嵌套循环案例:打印图形,下兔子,鸡兔同笼,九九乘法表等 • 常见错误讲解:判断用户输入类型 | |
数组 | • 数组的定义 • 数组的动态初始化 • 数组的访问格式 • 数组的静态初始化:{} • java的内存划分和作用 • 数组在内存中的存储 • 数组常见问题 • 最大值最小值 • 冒泡排序的原理分析及代码实现 • 二分查找的原理分析及代码实现 • 多维数组:语法,不常用数组定义格式 • 多维数组案例 | |
方法 | • 方法的定义和调用:static,递归 • 方法的参数和返回值:static • 扩展:方法的可变参数 • 方法的重载overload • 参数的基本类型和引用类型的区别 | |
java面向对象 | 面向对象基础 | • package关键字的作用:import • 面向对象概述:多种开发思想对比 • 类和对象的关系 • 类和对象的创建:属性,方法,以及调用 • 分析对象在内存中的存储 • 成员变量和局部变量的区别 • private关键字的应用 • this关键字的运用 • this关键字的内存原理 • 构造方法 • 构造方法重载 • 阿里巴巴编程规范 |
面向对象进阶 | • 面向对象特性之封装:两个角度讲解 • 权限修饰符:public,private,protected • static关键字的作用 • static关键字内存分析 • 代码块:调取优先级 | |
面向对象高级 | • 面向对象特征之继承 • super关键字的作用 • 继承时子类的访问特点 • 方法的重写override • final关键字:常量 • 面向对象特征之多态 • 多态中成员访问的特点 • 多态中的数据类型转换 • instanceof关键字的使用 • JAVA三大特性优缺点 • 抽象类概述 • 抽象类代码实现 • 抽象类的成员特点 • 接口的概述 • 接口的特点和注意事项:default-1.8新特性 • 类、抽象类、接口之间的关系 • 案例:基于面向对象的综合案例 | |
内部类 | • 内部类的概述 • 成员内部类的使用 • 局部内部类的使用 • 静态内部类 • 匿名内部类的使用 • 匿名内部类在开发中的应用 | |
异常 | • 异常的概述 • JVM默认处理异常的方式 • 异常处理方式之try-catch • 异常处理方式之throws • 异常处理方式之throw • 异常分类 • throwable的常用方法 • 异常的注意事项 • 常见异常介绍 • 自定义异常的使用 • 综合案例:快递柜项目 | |
idea的安装与使用 | • idea的安装 • idea的使用 • idea的常用快捷键 | |
API | API基础 | • API的使用方式 • 包装类 • Object类 • String类 • StringBuilder与StringBuffer类 |
常用API | • Math类 • System类 • BigDecimal类 • Arrays类 • Date,SimpleDateFormat • NumberFormat类以及使用 • 正则表达式及常用类 • jar包的制作以及使用 | |
算法 | 常用算法 | • 插入排序的原理分析及代码实现 • 归并排序的原理分析及代码实现 • 希尔排序的原理分析及代码实现 • 选择排序的原理分析及代码实现 • 快速排序的原理分析及代码实现 • 扩展:加密算法 |
java核心类库 | 泛型 | • 泛型概述 • 泛型在类中的使用 • 泛型在接口中的使用 • 泛型限定和通配符 |
集合 | • 集合体系结构 • Collection • List接口 • ArrayList • Vector • LinkedList • 迭代器的使用 • 增强for循环的使用 • forEach • Set • HashSet与TreeSet • TreeSet的自然排序和比较器排序:compareable,compartor • Map • HashMap和TreeMap • Collections | |
数据结构 | • 常见数据结构之数组和链表 • 常见数据结构之栈和队列 • 数据结构之哈希表 • 常见数据结构之树与二叉树 • 数据结构之二叉平衡树 • 数据结构之红黑树 • ArrayList集合源码分析 • LinkedList集合源码分析 • copyOnwriteArrayList • CopyOnWriteArraySet • TreeSet(TreeMap)底层源码分析 • Jdk1.7中HashSet(HashMap)源码分析 • Jdk1.8中HashSet(HashMap)源码分析 • HashTable • ConcurrentHashMap • ConcurrentLinkedQueue • BlockingQueue接口 • JDK1.9集合新特性 | |
IO | • File类对文件的操作 • IO流的概述和分类 • 字节流写数据的方式 • 字节流读数据的方式 • 案例:字节流文件复制 • 字符编码 • 字符流写数据的方法 • 字符串读数据的方法 • 字节流与字符流的转换 • 字符缓冲流的使用 • 字符缓冲流的特有方法 • 标准输入输出流 • 打印流的使用 • 对象序列化流 • serialVersionUID&transient • Properties的用法 • 内存操作流的使用 • try-catch-resources • Externalizable接口 • RandomAccessFile使用 • SequenceInputStream的使用 • 压缩流/解压缩流 | |
多线程 | • 进程和线程的区别 • 同步与异步&并发与并行 • Java实现多线程的三种方式 • 线程API之线程名称 • 线程API之线程休眠 • 线程API之线程阻塞 • 线程API之线程优先级 • 线程API之线程中断 • 线程API之守护线程 • 线程的安全问题 • 同步代码块 • 同步方法 • Lock锁 • 线程死锁 • 多线程通信问题 • 生产者与消费者 • 线程生命周期 • 带返回值的线程Callable • 线程池概述 • 缓存线程池 • 定长线程池 • 单线程线程池 • 周期定长线程池 • 重入锁 • Condition • 信号量 • 读写锁 • 倒计数器:CountdownLatch • 线程阻塞工具类:LockSupport | |
lambda | • Lambda表达式的标准写法 • Lambda的省略规则| • Lambda和匿名内部类的区别| • JDK8和9对接口组成的更新:函数式接口 • 方法引用的介绍 • Stream流的中间操作 • Stream流的终结操作 • Stream流的收集操作 | |
网络编程 | • 网络编程的概述 • IP地址(ipv4,ipv6) • InetAddress类的操作 • 端口和协议的详细解释 • TCP程序-Socket,ServerSocket • 在服务器中加入多线程 • 相关类和API • UDP协议发送与接收数据 • UDP协议中广播与组播 | |
NIO | • NIO概述 • Buffer的使用 • Channel • Selector和非阻塞网络编程 | |
XML与JSON | • XML介绍 • XML语法 • Schema验证XML • 解析XML方式介绍 • Dom4j解析 • XPATH解析 • 基于Dom4j操作XML文件 • JSON介绍 • JSON解析 | |
枚举、注解与反射 | • 枚举概述 • 枚举语法 • 枚举常用方法 • 枚举接口 • 枚举注意事项 • 注解概述 • 内置注解 • Jdk常见的元注解 • 自定义注解 • 虚拟机类加载机制(概述,类加载过程,类的初始化时机) • 反射概述 • Class与加载方式 • 反射中的构造方法 • 反射中的成员方法 • 反射中的属性 • 案例:基于反射与注解 • 内省(反射提升视频) | |
扩展 | • 类加载器(概述,分类,双亲委派机制,ClassLoader类,自定义类加载) | |
单元测试 | Junit4 | • Junit4 |
设计模式 | 设计模式 | • 6大原则 • 14种设计模式 |
阶段二:初识 JavaWeb
掌握 Mysql8.0 数据库操作,掌握前端技术 (html,css,javascript,jquery,bootStrap),掌握 JAVAWEB技术。其中包括网站开发流程,基于 MVC 架构实现 JSP+Servlet 的网站开发,具备小型网站开发能力 ,项目开发中的调试能力。
模块 | 章节 | 知识点 |
数据库 | 数据库基础 | • 数据库介绍 • MYSQL8安装与卸载 • SQL概述 • SQL语句分类 • 基于命令行实现DDL:操作数据库与数据表,表引擎,字符集,数据类型 • DCL权限管理:grant,createuser,dropuser • DML操作表中数据:CRUD • DQL数据查询:简单查询,条件查询,模糊查询,去重,排序,聚合,分组,分页 • MYSQL约束类型:主键,唯一,非空,默认,自增长,外键 • MYSQL基础练习题讲解 |
数据库高级 | • 基于Navicat实现DDL:操作数据库与数据表,表引擎,字符集,数据类型 • 基于SQLyog实现DDL:操作数据库与数据表,表引擎,字符集,数据类型 • 数据库三大范式 • 多表关系:一对多,多对一,一对一,多对多 • 多表查询:Union,Unionall,联接查询(内联接,外联接),子查询 • MYSQL高级查询练习题讲解 • 数据库扩展:多行新增,多表更新,多表删除,日期函数,数据的行转列 • 导入导出数据库 | |
数据库事务 | • MYSQL事务:基本概念,特点,提交与回滚,隔离级别 | |
数据库进阶 | • 存储过程,视图,触发器,MYSQL索引,SQL优化,索引原理,慢查询与SQL优化 | |
Oracle | • Oracle | |
JDBC初级 | • JDBC体系结构 • JDBC核心组件 • CRUD语法复习 • JDBC连接步骤 • JDBC执行增删改语句 • JDBC手动处理事务 • 事务案例:转账功能 • SQL注入 • PreparedStatement预状态通道 • ResultSet结果集查询 | |
JDBC高级 | • JDBC操作多表关系 • JDBC实现批处理:Statement批处理,PreparedStatement批处理 • 基于反射优化结果集 • 封装DBUtils工具类 • 使用properties属性文件保存数据库信息 • 数据库连接池:dbcp,c3p0,druid • ThreadLocal讲解 • 使用连接池+ThreadLocal优化DBUtils • JdbcTemplate工具类 • 案例:基于JDBC实现数据表CRUD->基于多表,只添加dao | |
HTML5 | HTML基本使用 | • html基本概念 • html基本结构 |
HTML常用标签 | •
html常用标签:<h1>…<h6>,<p>,<br/>,<hr/>,<em>,转义码,<img>,<font>,<a> • 列表标签:有序,无序,自定义 • 表格标签:<table>,常用属性:border,cellspacing,cellpadding,width,height,align,valign,rowspan,colspan • 框架标签:iframe,frameset • 框架标签:iframe,framese | |
HTML表单 | • 表单的概念 • 表单的语法 • 常用表单元素:type="text","password","submit","reset","radio","checkbox","button","file","image","hidden" • 表单常用属性:name,value,enccols=""readonlydisabled> • 多行文本域 | |
h5表单新特性 | • HTML4与HTML5的区别 • 语义标签 • 增强型表单 • 视频+音频 | |
CSS | • CSS基本概念及作用 • CSS基本语法 • CSS定义位置:行内css,内部css,外部css • CSS基本选择器:标签选择器,id选择器,类选择器 • CSS优先级:选择器优先级,定义位置优先级 • CSS高级选择器:后代选择器,交集选择器,并集选择器,全局选择器 • CSS继承性 | |
CSS常用样式 | • CSS样式属性:<span>,文本属性(font),文本样式(color,text-align,text-indent,line-height,text-decoration,vertical-align),伪类,cursor | |
盒子模型与布局 | • DIV标签介绍,常用属性:width,height,background,list-style • 盒子模型及常用属性:width,height,padding,margin,border,display,float,clear,overflow | |
h5页面操作新特性 | • Canvas绘图 • SVG绘图 • 地理定位 • 拖放API | |
h5扩展 | • WebWorker • WebStorage • WebSocket | |
CSS3新特性 | • CSS3选择器 • 框模型 • 背景和边框 • 文本效果 • 2D/3D转换 • 动画 • 多列布局 • 用户界面 | |
JS | JS基础 | • JS概念介绍:概念,特点,作用 • JS定义位置:行内js,内部js,外部js • JS基本语法:变量,数据类型,undefined,String的属性与方法,数组,运算符, • 选择结构,循环结构,弹窗,注释 • JS调试方案:F12浏览器调试,firebug,alert() • JS函数:系统函数,自定义函数,匿名函数 • JS变量作用域:局部变量,全局变量,常用方法 • JS之BOM模型:window对象常用属性,常用方法 • JS之元素事件:onload,onmouseover,onmouseout • JS之元素事件:onload,onmouseover,onmouseout,onclick,onchange,onfocus,onblur • JS之DOM模型:getElementById(),getElementsByName() • JS特效实现:内置对象Array,Math,String,Date • JS案例讲解:全选/全不选,动态时间,动态表格,省市级联特效 |
JS高级 | • 表单验证意义与场景 • 表单验证常用事件与属性 • 正则表达式介绍与案例讲解(验证0-120之间的年龄):提供常用正则文档 • JS面向对象思想 | |
Jquery | Jquery学习 | • Jquery与JS的关系 • Jquery语法结构 • Jquery选择器:基本,类,标签,并集,交集,全局,后代,子,相邻,同辈,属性,过滤,可见性选择器 • Jquery常用函数:css(),html(),val(),addClass() • Jquery与JS对象的转换 • Jquery中的事件:鼠标事件,键盘事件,表单事件,悬停事件,点击事件,动态效果函数 • Jquery操作DOM:元素的增加,替换,删除,克隆,获取 • Jquery特效:短信墙,树形菜单,选项卡,导航栏,图片放大镜,拖动效果,阻止事件冒泡 • 基于Jquery实现表单验证 • Jquery的validate验证框架 • 网站常用控件学习:My97DatePicker,富文本框 |
移动端 | 移动端布局 | • 移动端布局-viewport • 移动端布局-2倍图 • 移动端布局-移动端常见布局 |
flex布局 | • flex布局-体验 • flex布局-flex-direction • flex布局-justify-content • flex布局-flex-wrap和align-items • flex布局-align-content • flex布局-flex • flex布局-align-self • flex布局-导航栏 | |
移动端适配 | • 移动端适配-媒体查询 • 移动端适配-rem • 移动端适配-rem应用 • 移动端适配-实际应用 • 移动端适配-less应用 • 移动端适配-解决方案 | |
响应式布局 | bootStrap | • bootStrap介绍与入门 • bootStrap栅格系统,排版,表格,表单,按钮,图片 • bootStrap组件:字体图标,下拉菜单,导航,警告框,弹窗,输入框组,分页,进度条,按钮组等 |
版本控制工具 | SVN | • 版本控制的概念 • SVN介绍 • SVN服务器端安装 • SVN客户端安装 • SVN客户端常用操作 • IDEA关联SVN • IDEA操作SVN实现代码备份 |
GIT | • GIT介绍:GIT诞生,集中式VS分布式 • GIT与SVN的区别 • GIT的安装:linux,mac,window安装 • GIT版本回退 • GIT的工作区域 • GIT提交文件 • GIT撤销修改 • GIT删除文件 • GIT远程服务器介绍 • GITLAB常用操作介绍 • GITHUB常用操作介绍 • GITEE常用操作介绍 • GIT初始化 • GIT操作远程仓库 • GIT关联IDEA • 使用IDEA操作版本控制工具 • GIT分支管理:创建与合并分支,解决冲突,分支管理策略,bug分支,Feature分支, • 多人协作:创建标签,操作标签 • 标签管理GIT服务器 • 自定义GIT:忽略特殊文件,配置别名,搭建 | |
服务器 | Tomcat | • 贯穿案例展示及讲解 • WEB服务器介绍 • Tomcat服务器搭建 • 基于IDEA配置Tomcat • Tomcat常用配置:修改端口号,修改编码方式,图形化管理项目 |
Servlet | • Servlet介绍 • ServletAPI • Servlet初识 • Servlet生命周期 • Request的常用方法 • Response的常用方法 • 转发与重定向的区别 • Session会话 • ServletContext使用 • 初始化参数的获取 • 注解方式实现Servlet • Postman介绍与使用 • 案例:基于Servlet实现数据库的CRUD • HTTP协议介绍 • HTTP请求方式和开发模式介绍:fiddler | |
JSP | • JSP介绍 • JSP页面初识 • JSP编译原理 • JSP九大内置对象 • JSP三大指令 • JSP请求状态码含义 • EL表达式 • JSTL标签库 • FMT标签库 • 案例:基于JSP+JSTL+FMT+Servlet实现用户登录退出 | |
WEB应用技术 | Cookie | • Cookie介绍 • Cookie的基本操作 • 删除Cookie • Cookie的应用 • Session实现会话跟踪 • Session与Cookie的区别 |
Filter+Listener | • Filter学习 • Filter应用 • Listener学习 • Listener应用 | |
MVC | • MVC介绍 • 三层架构概念 • 代码实现MVC • MVC与三层架构的区别 • 公司开发模式介绍:前后端分离 • 案例:基于三层架构实现用户登录 | |
AJAX+JSON | • AJAX概念 • AJAX原理 • AJAX常用属性与方法 • 基于JS实现AJAX • 基于Jquery实现AJAX • JSON介绍 • JSON与JAVA转换 • 案例:使用AJAX+JSON+Servlet实现用户名重复验证 | |
文件操作 | • 文件上传案例:文件上传的http协议内容 • 文件下载案例 | |
项目讲解 | • 案例:基于Servlet+JSP+JSTL+AJAX+EL实现多表操作案例(CRUD+分页)学生管理模块 | |
快项递目E1栈 | 后台开发 | • 项目概述 • 编写MVC框架 • 二维码生成 • Layer • 阿里云短信 • 项目搭建与工具类整理 • 管理员数据操作部分 • 管理员登录前后端交互 • 流程与快递表格创建 • API设计 • DAO接口编程 • SQL语句编程 • DAO编写+测试 • Service层编写 • 阿里云短信集成 • 控制台部分 • 分页列表 • 快递录入 • 删除与修改 • 权限控制 • 后续梳理 |
微信端 | • 短信登录和退出 • 快递列表获取 • 二维码展示 • Ngrok内网穿透 • 微信JS扫码 • 取件 • 补充 |
阶段三:企业级框架
掌握公司部署环境 Linux, 企业级框架 Spring,SpringMVC,Mybatis,Springboot 框架。Redis,Nginx 提升项目,响应效率。学完本章课程,掌握基于企业级框架实现网站开发的技能。
模块 | 章节 | 知识点 |
Maven | Maven概述 | • Maven引言与介绍 • Maven的功能 • Maven的模型 • Maven原理分析 |
Maven环境搭建 | • Maven的安装与配置 • Maven更换阿里云镜像 • Maven的构建&自动化构建 • Maven创建java、web工程 • Maven之pom.xml文件介绍 • Maven的依赖管理 • Maven的常用命令 • 本地项目安装到本地仓库 • 自定义本地仓库路径 • Maven坐标 • Maven的依赖性、传递性、继承性 • Maven的生命周期 | |
Maven高级 | • Maven中的插件使用 • Maven私服的概念 • Maven私服的搭建和使用 | |
Linux | Linux安装与应用 | • Linux概述 • 虚拟机概念 • VM介绍与安装 • VMWare下安装Linux • XShell连接linux • Linux目录结构 • Linux权限操作 • Linux常用指令:vi,vim • FXP文件上传 • SecureCRT8.0工具介绍 |
环境搭建 | • yum介绍 • Linux下安装JDK • Linux下安装tomcat • Linux下防火墙问题 • Linux下安装mysql • Linux修改主机名 • Linux修改静态IP • 通过主机名互访 • 基于阿里云的Linux访问操作 | |
Nginx | Nginx | • Nginx介绍 • Nginx安装 • Nginx之虚拟主机 • Nginx之反向代理 • Nginx之负载均衡 • Nginx之部署静态页 |
Nosql | Redis | • Nosql介绍 • Redis介绍 • Redis安装与启动 • Redis客户端访问及服务管理 • Redis数据类型介绍 • Redis常用指令 • Redis事务管理 • Redis发布与订阅模式 • Jedis访问Redis • Jedis连接池访问Redis • Redis持久化方案-RDB • Redis持久化方案-AOF • Redis主从复制 • Redis哨兵模式介绍 • Redis哨兵模式配置 • Redis集群概念 • Redis集群环境搭建 • Jedis连接Redis集群 • Redis缓存雪崩 • Redis缓存穿透 • Redis缓存击穿 • Redis分布式锁 |
MongoDB | • MongoDB介绍 • 基于Window实现MongoDB安装 • 基于Linux实现MongoDB安装 • MongoDB支持的数据类型 • MongoDB的常用指令 • JAVA代码操作MongoDB • MongoDB索引 • MongoDB备份与恢复 • MongoDB集群介绍 • MongoDB集群搭建 • MongoDB故障转移 • MongoDB仲裁者配置 | |
企业级框架 | Mybatis | • Mybatis介绍 • Mybatis-xml开发入门 • Mybatis-Annotation开发入门 • Log4j的使用 • 代理模式CRUD基本操作 • parameterType和resultType详解 • resultMap详解 • 传统Dao模式CRUD操作 • Mybatis配置文件详解 • Mybatis动态SQL • 多对一(关联语句) • 一对多(关联语句) • 多对多(关联语句) • 多对一(懒加载方式) • 一对多(懒加载方式) • Mybatis一级缓存 • 二级缓存 • 二级缓存整合Ehcache • 注解映射详解 • Mybatis逆向工程 |
Spring | • Spring介绍 • SpringIOC入门案例 • SpringIOC详解 • SpringDI详解 • Spring整合JDBC • Spring整合JDBC案例-转账功能 • Spring注解配合xml配置IOC和DI • Spring全注解配置IOC和DI • Spring整合Junit4 • SpringAOP素材案例 • SpringJDK代理和cglib代理 • 基于XML配置AOP • 切入点表达式详解 • Spring全注解配置AOP • XML配置声明式事务 • 注解+XML配置声明式事务 • Spring全注解配置声明式事务 • spring高级分析之IOC容器说明 • spring高级分析之组件扫描器TypeFilter • spring高级分析之Import注解和自定义导入器 • spring高级分析之BeanFactoryPostProcessor • spring高级分析之BeanPostProcessor • spring高级分析之InitializingBean • spring高级分析之FactoryBean • spring高级分析之EnableAspectjAutoProxy注解的解析 • Spring中AOP的运行期增强的执行过程分析 • spring事务高级分析之TransactionTemplate源码分析 • spring事务高级分析之DataSourceUtils源码分析 • spring事务高级分析之TransactionSynchronizationManager源码分析 • spring事务高级分析之TransactionEventListener注解的加载过程分析 • Spring中模板对象:NamedParameterJdbcTemplate的使用 • RedisTemplate的使用 • Spring事务设计的设计模式分析 | |
SpringMVC | • SpringMVC入门案例 • SpringMVC原理详解 • SpringMVC常用组件介绍 • SpringMVC-RequestMapping注解 • SpringMVC-封装请求参数 • SpringMVC的表单验证注解 • SpringMVC-使用ServletAPI • SpringMVC-requestParam注解 • SpringMVC-RequestBody注解 • SpringMVC-PathVariable注解 • SpringMVC-restful风格URL实现 • SpringMVC-RequestHeader注解 • SpringMVC-CookieValue注解 • SpringMVC-ModelAttribute注解 • SpringMVC-SessionAttribute注解 • SpringMVC-响应数据 • SpringMVC-异步处理数据 • SpringMVC-文件上传 • SpringMVC-异常解析器 • SpringMVC-拦截器 • SpringMVC中的请求参数封装源码分析和运用的设计模式介绍 • SpringMVC中的父子容器 | |
SSM整合 | • ssm整合-mybatis映射dao • ssm整合-service • ssm整合-spring整合mybatis • ssm整合-controller和jsp页面 • ssm整合-springmvc配置 • ssm整合-CRUD实现 • ssm整合-分页插件PageHelper • 案例:基于SSM实现系统 | |
SSM项目 | • 山东医院 | |
springboot | • 概念 • 入门案例 • SpringBoot加载原理 • 全注解配置 • 读取属性文件 • 自动配置原理 • 整合springmvc • 整合jdbc • 整合mybatis • 整合tk-mybatis • thymeleaf入门案例 • thymeleaf详解 • springBoot整合JSP • SpringBoot整合redis • springBoot实现任务调度 • springBoot整合MongoDB • springBoot整合JPA • springBoot核心功能 • 起步依赖原理分析 • 自动配置原理解析 • 自定义起步依赖并实现自动配置 • 自定义starter • 事件监听 • 初始化流程 | |
springBoot项目 | • 云收藏 | |
MyBatis-plus | • Mybatis-plus简介 • Mybatis-plus快速入门 • Mybatis-plus通用CRUD • Mybatis-plus条件构造器 • Mybatis-plus的Service封装 • Mybatis-plus代码生成器 • springBoot整合MybatisPlus • 案例:旅游网,记账管理 |
阶段四:微服务 + 分布式 + 架构思维
掌握微服务框架 SpringCloud, 基于 SpringCloud,结合 docker,ElasticSearch,RabbitMQ,VUE,Oauth2.0 等技术实现商城项目功能,掌握商城项目所需的技能。学完本章课程,具备了电商平台开发的专业技能,具备面试中要求的技能方向。
模块 | 章节 | 知识点 |
微分服布务式 | springCloud | • SpringCloud介绍 • 服务注册中心Eureka介绍 • Eureka服务端开发 • 微服务开发并注册到Eureka服务注册中心 • Eureka保护模式介绍 • 客户端负载和服务端负载的介绍 • Ribbon实现客户端负载均衡 • Feign的介绍和实现 • Feign工作原理和注意事项 • 雪崩效应与熔断器介绍 • 熔断器Hystrix使用 • 网关介绍 • 基于Gateway构建网关服务 • 通过Gateway网关访问微服务 • SpringCloudConfig介绍 • 使用Git存储的方式实现配置管理 • 微服务改造从配置中心获取配置信息 • 服务总线SpringCloudBus介绍和应用 • Eureka集群 • EurekaWEB介绍 • Consul服务治理与配置管理 • Nacos动态服务发现与配置管理 • Sleuth链路追踪 • Zipkin展示 • Config本地读取 • Stream消息驱动 |
Docker | • Docker概念:与虚拟机比较 • Docker安装 • Docker架构 • Docker进程命令 • Docker镜像命令 • Docker容器相关命令 • Docker数据卷概念 • Docker数据卷配置 • Docker数据卷容器 • Docker安装Mysql • Docker安装Tomcat • Docker安装Nginx • Docker安装Redis • Docker镜像管理:镜像备份,恢复与迁移 • Docker容器转镜像 • Docker之DockerFile概念 • DockerFile案例1:自定义centos • DockerFile案例2:部署SpringBoot项目 • Docker之Compose介绍 • Docker之Compose安装 • Docker之Compose案例 • Docker私有仓库 | |
k8s | • k8s | |
FastDFS | • FastDFS介绍 • FastDFS架构 • FastDFS工作原理 • FastDFS安装 • FastDFS文件上传微服务 | |
Swagger | • Swagger简介 • Swagger配合 • Swagger使用 | |
Elasticsearch | • Elasticsearch介绍 • Elasticsearch术语说明 • Elasticsearch安装 • Elasticsearch安装Head插件 • Elasticsearch之Postman管理Index • Elasticsearch之Postman管理文档 • Elasticsearch之Postman查询Index • Elasticsearch之中文分词器IKAnalyzer • Elasticsearch之Kibana介绍 • Elasticsearch之Kibana安装 • Elasticsearch之Kibana-DSL管理索引 • Elasticsearch之Kibana-DSL查询索引 • Elasticsearch之JavaAPI创建Index • Elasticsearch之JavaAPI创建文档 • Elasticsearch之JavaAPI查询索引 • Elasticsearch之JavaAPI查询结果高亮显示 • Elasticsearch之SpringDataES • Elasticsearch之聚合查询 • Elasticsearch案例:搭建ES微服务工程 • Elasticsearch案例:导入商城索引库 • Elasticsearch案例:搜索商城索引库 • es集群环境搭建与介绍 • es并发操作 • es重试策略 • smartCN分词与六大内置分词器演示 • IK自定义词库 • springboot继承es • es内部原理介绍 | |
RabbitMQ | • MQ介绍-优势,子产品 • RabbitMQ介绍 • RabbitMQ安装 • RabbitMQ管控台 • RabbitMQ之生产者 • RabbitMQ之消费者 • RabbitMQ之WorkQueues模式 • RabbitMQ之Fanout模式 • RabbitMQ之Routing模式 • RabbitMQ之Topic模式 • RabbitMQ之基于Spring生产者 • RabbitMQ之基于Spring消费者 • RabbitMQ之基于SpringBoot生产者 • RabbitMQ之基于SpringBoot消费者 • RabbitMQ高级特性之消息可靠性投递confirm模式 • RabbitMQ高级特性之消息可靠性投递return模式 • RabbitMQ高级特性之消费端ACK • RabbitMQ高级特性之消费端限流 • RabbitMQ高级特性之TTL • RabbitMQ高级特性之死信队列 • RabbitMQ高级特性之延迟队列 | |
MQ | • mq日志监控 • mq消息追踪 • mq消息补偿机制 • mq幂等性 • mq集群搭建 | |
RocketMQ | • RocketMQ概述 • 搭建RocketMQ • RocketMQ-Console管理控制台 • RocketMQ模式 • springBoot整合RocketMQ • 集群安装部署 • 基于MQ的分布式事务解决方案说明 | |
zookeeper | • Zookeeper介绍 • Zookeeper数据类型 • Zookeeper安装与配置 • Zookeeper之常用命令 • Zookeeper之ACL命令 • Zookeeper之四字常用命令 • Zookeeper之集群搭建 • Zookeeper之日志可视化 • Zookeeper实战:12306售票 • Zookeeper之Observer使用 • Zookeeper之选举模式 • Zookeeper之脑裂效应 | |
Dubbo | • Dubbo介绍 • Dubbo单体架构 • Dubbo垂直架构 • Dubbo之SOA架构 • Dubbo之微服务架构 • Dubbo架构 • Dubbo案例:生产者与消费者 • Dubbo管理控制台 • Dubbo之XML配置 • Dubbo之协议配置 • Dubbo之负载均衡 • Dubbo之事务代理后发布问题 • 监控中心 • 升级版Dubbo-admin使用 • 12种Dubbo高级特性 • 架构原理 • 工作原理与服务治理 • 心跳与通信 • 支持的注册中心和协议 • springCloud与dubbo对比 | |
vue | ECMAScript6 | • ECMAScript6介绍 • let和const命令 • 变量的解构赋值 • 字符串的扩展 • 字符串的新增方法 • 运算符扩展 • 数值扩展 • 函数扩展 • 数组扩展 • Set和Map数据结构 • 对象的扩展 • 对象的新增方法 • Class的基本语法 • Class的继承 |
webpack | • 安装 • 配置打包模式 • 配置出口文件与入口文件 • 编译模板页面 • 实时打包 • 配置css-loader • 配置图片相关loader • less-loader • bable-loader | |
vue | • VUE概述 • VUE入门案例 • VUE模板语法 • VUE文本插值 • VUE的绑定属性 • VUE的条件渲染 • VUE的列表渲染 • VUE的事件绑定 • VUE的表单绑定 • VUE的组件 • VUE的axios | |
实战项目 | 新职课商城 | • 电商项目简介 • 前后端分离开发品牌管理模块 • springcloud工程搭建 • 品牌管理 • 前后端代码重用 • 搭建FastDfs图片服务器 • 规格商品管理 • 使用Lua+Nginx实现限流 • 使用SpringDataRedis操作redis缓存 • 使用Canal+Redis实现数据库缓存同步 • 使用ElasticSearch实现商品搜索服务 • 商品详情页静态化实现 • Springcloundgateway微服务网关 • springcloudconfig配置微服务 • 配置微服务的配置本地和远程(git)配置 • JWT令牌详解 • Oauth2详解 • Oauth2授权模式 • 使用SpringSecurityOauth2+JWT实现商城权限管理 • 购物车,订单实现方案 |
GitLab+jenkins+ones | • 研发管理概述 • 研发管理协作工具ones • SSH协议 • Git提交本地文件到远程仓库 • 克隆远程仓库到本地 • 基于idea实现gitlab的分支管理 • jenkins持续交付继承 | |
人脸识别 | 人脸识别 | • 人脸识别概念 • 人脸识别API接口调用 • 人脸识别案例:刷脸登录 |
语音识别 | 语音识别 | • webSocket介绍 • webSocket客户端开发 • webSocket服务端开发 • 语音识别API介绍 • 语音识别案例实现 |
二维码支付 | 支付宝支付 | • 支付介绍 • 支付分类 • 沙盘介绍 • 支付流程 • 沙箱数据填写 • 工具类定义 • 支付页面实现 • 支付对象创建 • 支付类实现 • 工具类实现(同步通知+异步通知) • 支付宝功能测试 |
微信支付 | • 智慧餐饮 • 教育医疗 • 智慧零售 | |
生态体系 | 阿里云/百度云/华为云等云服务器生态 | • 各平台云服务器的使用 |
微信生态 | • 微信小程序开发,微信公众号开发 | |
支付宝生态 | • 小程序,生活号,第三方应用 | |
七牛云 | • 高可靠、强安全、低成本、可扩展的存储服务 | |
其他常用组件 | • 云原生,Devops,全链路压测 | |
解决方案 | 常见面试指导 | • 简历指导,面试指导,技术指导,经验分享 |
工作流 | • activity工作流 | |
分布式锁 | • 锁的产生,问题,解决方案 | |
扩展部分 | springCloudalibaba | • springcloudalibaba中的nacos,sentinel,seata |
NIO | • 同步非阻塞 | |
JDK新特性 | • JDK8-15新特性 | |
并发包 | • JUC及其相关工具包 | |
netty | • Netty初识及入门 | |
设计模式 | • 设计原则与常见设计模式 | |
JVM性能调优 | • JVM常用参数配置 | |
算法 | • 力扣算法题300道 |
阶段五:浸入开发项目组实习
这个阶段安排入职智校云网络科技有限公司实习,实习期为一个月,分配到商业项目组中和老程序员一起参与上线项目的开发工作。浸入项目组实习,不仅可以积累工作经验,在工作中学习更是技术提升的关键时期。相关的工作经验对于新工作的薪资起着决定性作用,因为参加实际项目开发解决过一些实际问题,一些开发工具会使用很熟练,并掌握相关的业务流程,了解团队协作开发的相互配合, 了解相关的项目管理规范等,所以开发效率会很高。在实际的编程工作中,你做的事情往往是一个大系统中的一个组件,完成一个大系统的开发工作是一个团队的事情,但你必须学会如何团队开发。最主要的是学过再多的技术,学习的内容也都是“点状”的,例如会写小段代码,掌握各种算法,了解所有设计模式,但没有参加过商业项目开发就不相信自己能胜任这份工作。作为程序员要有被甲方“威胁”的经历,要有被产品经理反复改需求“博弈”的过程,要有为了项目预期上线连夜“奋战”的时候,更要有项目经测试后反馈回来BUG成堆无地自容的感觉,也要有过讨论架构“拍桌子”大喊的情况。
任务 | 字段 | 描述 |
---|---|---|
任务 | 字段 | 描述 |
第01天 项目实战 CMS系统 | 目标 | 掌握CMS系统核心概念,能够独立开发插件,快速建站。 |
内容 |
1.系统搭建 2.熟悉项目结构流程 3.搭建一个企业网站 4.扩展CMS基础模块 | |
标签 | CMS、企业站、背景、需求、安装、使用、架构、模块、二次开发... | |
第02天 项目实战 考试系统 | 目标 | 搭建员工考试系统,熟悉业务流程,能够独立完成项目开发扩展工作。 |
内容 |
1.系统搭建 2.熟悉项目业务流程 3.扩展系统功能 | |
标签 | 考试系统、系统扩展、背景、需求、安装、使用、架构、模块、二次开发... | |
第03天 项目实战 电子商务系统 | 目标 | 掌握电子商务系统得核心流程, 深入理解电商系统逻辑,能够独立完成扩展开发。 |
内容 |
1.电子商务系统搭建 2.熟悉项目业务流程 3.扩展项目系统功能 | |
标签 | 商城、电商、电子商务、背景、需求、安装、使用、架构、模块、二次开发... | |
第04天 项目实战 博客系统 | 目标 | 掌握博客系统流程网站部署流程,搭建一套博客系统,并部署至阿里云。 |
内容 |
1.博客系统搭建 2.熟悉博客系统业务流程 3.调整博客模板 4.书写博客 5.搭建自己的博客系统 | |
标签 | 博客、部署、背景、需求、安装、使用、架构、模块、二次开发... | |
第05天 项目实战 在线教育系统 | 目标 | 掌握在线教育系统部署搭建,熟悉在线教育系统流程,独立完成项目扩展开发。 |
内容 |
1.在线教育系统部署 2.熟悉在线系统架构 3.熟悉在线教育业务 4.扩展在线教育系统 | |
标签 | 在线教育、背景、需求、安装、使用、架构、模块、二次开发... | |
第06天 项目实战 图书兄弟小程序 | 目标 | 体验图书兄弟小程序,熟悉图书兄弟业务流程,掌握小程序开发与后台对接流程。 |
内容 |
1.搭建部署图书兄弟小程序 2.搭建图书系统服务端 3.搭建图书兄弟后台VUE端 4.熟悉图书兄弟业务流程 5.扩展图书兄弟小程序 | |
标签 | 图书兄弟、小程序、VUE、Element、背景、需求、安装、使用、架构、模块、二次开发... | |
第07天 项目实战 猎聘小程序 | 目标 | 熟悉猎聘小程序,了解招聘业务流程,掌握小程序开发流程。 |
内容 |
1.搭建猎聘小程序 2.熟悉猎聘小程序流程 3.扩展猎聘小程序 | |
标签 | 招聘、背景、需求、安装、使用、架构、模块、二次开发... | |
第08天 项目实战 作品投票系统 | 目标 | 熟悉投票逻辑,了解作品投票程序,对作品投票程序扩展。 |
内容 |
1.熟悉作品投票程序 2.熟悉作品投票程序逻辑 3.对作品投票程序扩展 | |
标签 | 投票、小程序、作品、背景、需求、安装、使用、架构、模块、二次开发... | |
第09天 项目实战 CRM系统 | 目标 | 熟悉企业内部CRM系统逻辑,掌握CRM开发流程及开发中常见问题解决方案,对CRM系统扩展。 |
内容 |
1.搭建CRM系统 2.熟悉CRM系统流程 3.掌握CRM系统架构 4.扩展CRM系统功能 | |
标签 | CRM 、背景、需求、安装、使用、架构、模块、二次开发... | |
第10天 项目实战 分销系统 | 目标 | 熟悉分销系统架构,掌握分销系统核心逻辑,对分销系统进行扩展。 |
内容 |
1.分销系统搭建 2.熟悉分销系统核心业务 3.对分销系统进行功能扩展 | |
标签 | 分销、背景、需求、安装、使用、架构、模块、二次开发... | |
第11天 项目实战 项目流程 | 目标 | 掌握团队协作中常用工具,掌握项目开发从需求到功能上线流程,团队配合分工版本管理,团队协作中开发环境统一。 |
内容 |
1.团队开发协作工具学习 2.团队项目开发规范 3.项目开发流程 4.项目需求调研 5.项目原型分析 | |
标签 | 原型分析、项目需求调研、团队协作工具... | |
第12天 项目实战 项目初始化 | 目标 | 掌握根据项目需求及原型转化实际开发需求,在未来开发中可能遇见的问题,项目初期排坑。 |
内容 |
1.初始化项目 2.数据库模型分析 3.数据库初始化 4.第三方方案整合 5.项目数据库模型初始化 6.开发计划制定 | |
标签 | 数据库模型、项目初始化、开发计划制定... | |
第13天 项目实战 项目开发 | 目标 | 完成项目开发任务,根据团队协作工具领取任务,并完成代码质量检查。 |
内容 |
1.领取开发任务 2.完成开发任务 3. 完成质量检测 | |
标签 | 开发、任务、协作、代码质量检测... | |
第14天 项目实战 项目开发 | 目标 | 完成项目开发任务,根据团队协作工具领取任务,并完成代码质量检查 |
内容 |
1.领取开发任务 2.完成开发任务 3.完成质量检测 | |
标签 | 需求分析,数据库设计,程序设计,业务流程... | |
第15天 项目实战 项目开发 | 目标 | 完成项目开发任务,根据团队协作工具领取任务,并完成代码质量检查。 |
内容 |
1.领取开发任务 2.完成开发任务 3.完成质量检测 | |
标签 | 开发、任务、协作、代码质量检测... | |
第16天 项目实战 项目开发 | 目标 | 完成项目开发任务,根据团队协作工具领取任务,并完成代码质量检查。 |
内容 |
1.领取开发任务 2.完成开发任务 3.完成质量检测 | |
标签 | 开发、任务、协作、代码质量检测... | |
第17天 项目实战 项目开发 | 目标 | 完成项目开发任务,根据团队协作工具领取任务,并完成代码质量检查。 |
内容 |
1.领取开发任务 2.完成开发任务 3.完成质量检测 | |
标签 | 开发、任务、协作、代码质量检测... | |
第18天 项目实战 项目开发 | 目标 | 完成项目开发任务,根据团队协作工具领取任务,并完成代码质量检查。 |
内容 |
1.领取开发任务 2.完成开发任务 3.完成质量检测 | |
标签 | 开发、任务、协作、代码质量检测... | |
第19天 项目实战 Code Review | 目标 | 熟悉掌握Code Review流程,对代码完整性、一致性、正确性、可修改性、健壮性、结构性、可追性、可扩展性、安全性、可重用性、可理解性及性能进行评估。 |
内容 |
1.代码Code Review 2.根据结果调整代码 3.评估团队其他成员代码 | |
标签 | Code Review ... | |
第20天 项目实战 项目总结 | 目标 | 回顾项目开发流程,总结项目开发中问题,分享自己的项目开发心得。 |
内容 |
1.项目开发总结 2.分享项目开发心得 | |
标签 | 总结、心得... |