JavaEE分布式高端课程研究中心

Hi!终于等到你了,未来的JavaEE分布式架构师!
相信你已经做好充分的准备,来迎接这样一场JavaEE盛宴。
如果你拒绝平庸,渴望通过自己的努力,成长为那10%的JavaEE精英人才,
恭喜你,这份大纲就是你要找的真经宝典,
好程序员会将你培养为具备超强综合素质的JavaEE项目管理人才,带你开启不凡人生!

目前课程版本V3.0
升级时间 2018.5.10
课程时长22周
授课方式全程面授

好程序员JavaEE分布式开发课程优势

好程序员JavaEE分布式开发教研团队,通过对上千家软件企业进行技术背景调研,历时两
年打造出高端课程大纲,保持每半年一次的更新速度,让课程紧贴技术前沿。覆盖8大热门
行业,15个大型企业级项目;

课程涵盖了Java核心的编程思想,从OOP到OOD的思想转变,同时包含SpringBoot、
springCloud、dubbo等架构师核心课程,课程升级新增SpringData框架、Activiti工作流、
SpringTest整合JUnit和Mockito、MyCat分库分表技术、ElasticSearch搜索引擎、Dubbo
阿里分布式应用框架;

好程序员培养目标为JavaEE分布式架构师、Java项目负责人,起薪15000元。学员毕业相
当于2年以上工程师经验,5个月铸就JavaEE成神之路,强者创变,只为,再次超越!

课程优势详解

起薪15K的JavaEE分布式架构师学习路线图

架构师核心编程思想 真实企业项目实战
第一阶段 Java核心编程
JavaSE编程基础

- 介绍JavaEE的应用领域及整体技术体系,
生态圈,以及当前就业环境。强调学习纪律及相关
约定,讲师的个人介绍

- DOS常用命令,安装JDK、设置环境变量,DOS系统编译、执行Java程序,Java的注释

- 标识符、标识符的命名规范,Java关键字,Java
的数据类型,变量的定义及初始化,Java的运算符,
表达式,转义字符,运算符的优先级,类型转换

- Java分支if...else,多重if、嵌套if,Java switch,
Switch vs if,Java循环 for、while 、doWhile,
循环的嵌套,break、continue、return

- 方法的定义,方法的形参和实参,无返回值的方法,
有返回值的方法,方法的重载

让学员清晰JavaEE开发工程师的定位及发展规划,同时鼓舞学员做好打迎战的心理准备。
搭建好开发环境,编写自己的第一个HelloWorld程序,开启程序员之路。
掌握Java的基本语法,数据类型及各种运算符,开始可以写一些运算相关的程序
将人类的行为模式跟计算机的流程控制语句相结合,开始可以写一些复杂的流程控制程序,比如实现ATM机的取款验证功能
方法是将一段可以复用的代码进行了封装,提高了代码的复用率和开发效率,开始让学员懂得软件设计中复用的重要性
Java数组

- Java 数组的定义,数组的静态赋值,数组的动态赋值,数组单个元素的访问,数组的遍历访问,数组的增强for循环,数组的排序,数组的顺序查找,数组的二分法查找,命令行参数args的使用等

数组是对同一类数据的统一管理,程序除了流程控制以外,最关键就是要对操作的数据 进行管理,而数组就是其中一个管理数据的方式。我们将学到对数据进行存储,排序,查 找等关键技能,这些也是面试中的关键点。
Java面向对象

- 面向对象的分析与设计,面向对象与面向过程的区别,Java与面向对象,类的定义,对象的定义,类中成员变量及方法的定义,构造方法的定义和调用,构造方法的重载

- 面向对象的封装特性,this调用属性、方法、构造方法,局部变量和成员变量的作用域问题,static静态属性、方法、代码块,工具类的概念及工具类的制作,super关键字的使用及理解等

- 常用数据类型的包装类,String、StringBuffer、StringBuilder,Date的使用,SimpleDataFormate对日期和字符串之间的转换处理,Calendar日历类的使用,Math常用方法,System 类,Java8新特性等

二维数组就是数组的数组,我们要培训的是举一反三的能力,比如联想到三维数组,四维数组 面向对象的编程思想是更符合人类的编程思想,同时也是比方法更高层面的封装,更大程序 提高的代码的复用率,以及程序的可维护性和可扩展
你将会学到面向对象的三大特征,封装,继承,多态,这是更好去编写和理解面向 对象程序的核心基础,同时你将学会制作项目中通用的工具类,进一步掌握何为代 码复用。最后,我们将深入内存结构,带你学会如何从内存的角度来分析程序的运 行过程。
常用基础类

- 常用数据类型的包装类String、StringBuffer、StringBuilder
Date的使用SimpleDataFormate对日期和字符串之间的转换处理
Calendar日历类的使用Math常用方法Random类Runtime类
System 类java8新特性

这一块,你将会学习到项目开发中最常用的那一些类,为后面的开发打好基础,同时这一块也是面试题的常客。
集合

- 集合框架体系介绍集合框架与数组的对比
集合框架之Collection接口集合框架之List接口
ArrayList和LinkedList的使用
深入源码探究ArrayList和LinkedList的工作原理
迭代器的工作原理迭代器的使用集合框架之Set
HashSet和TreeSet的使用
深入源码探究HashSet和TreeSet的工作原理
HashMap和TreeMap的使用分析Map和Set的之间的关系, Collections工具类

集合框架是程序中另一种存储数据的方式,比直接使用数组来存储更加的灵活,在项目中应用十分广泛。 同时,我们将深入研究其中涉及到的数据结构和算法,对学员的技术深度有了一个质的提升。
异常处理

- Java的异常体系异常的概念及分类 异常的


处理方式异常设计原则 自定义异常

Java的异常体系保障了我们程序的健壮性。
线程和I/O

- I/ONIO文件操作多线程线程池
同步线程调度多线程下载网络http、socket
基于HTTP协议访问网络资源、XML解析
文件的下载ThreadLocal

程序的数据来源有有各式各样,来自网络端,来自本地文件的,这些都丰富了我们的程序的功能, 而IO流就是这其中的关键技术,掌握这一块技能,你将可以实现类似windows的搜索功能, 拷贝功能,以及自动阅卷功能。
项目

- FTP服务器、多人聊天服务器

项目实战
第二阶段 JavaWeb实战
HTML5

- HTML的作用全局标签、
绝对路径与相对路径常见标签、
字符集表单标签布局
指定的网页

学会HTML5,并且了解网页的构成
CSS3

- css声明类型、常见的各种属性、
圆角属性:border-radius的使用
阴影属性:box-shadow的用法
背景属性扩展:多背景应用
新的颜色表示方式:HSLA色轮模式
浮动完成自己的初级课页面实战

能够根据设计图,完成基本的网页设计
Javascript

- JavaScript基本语法、JavaScript数据类型、
JavaScript对象和常用对象、
history对象、
location对象window对象、
常用事件、
选项卡、幻灯片、贪吃蛇、
瀑布流各种特效

JS是做前端交互的核心技术,也是学习其他前端框架的基础。
MySQL使用

- Mysql数据库
MySql命令行客户端的使用
MySql图形化客户端的使用
SQL语句介绍,DDL、DML、DQL
多表的联合查询
子查询排序、
聚合、分组

MySQL是当今应用非常广泛的关系型数据库,SQL是我们跟数据 库交互的语言,掌握SQL,可以让我们更好管理数据。
JDBC连接池

- JDBC的介绍
采用JDBC实现CRUD
采用PrepareStatemen
t防止SQL注入,提高安全性

JDBC规范了Java程序与数据库的交互方式,预处理, 批处理是提高交互效率的有效方式。 连接池帮助我们更好复用了数据库连接资源, 更好应付程序的高并发问题。 学完这一块,我们可以做出自己的人员信息管理系统。
Servlet

- Tomcat与eclipse的集成开发
什么是Servlet
Servlet接收客户端请求信息
Servlet响应客户端信息
Servlet的生命周期
什么是JSP、JSP的内置对象
透析JSP的本质、JSTL+EL
MVC介绍、分层的重要性
Mysql的事务特性、MySql的事务实现
Session的使用、Cookie的使用
实现系统的安全控制、DBCP连接池的使用
C3P0连接池的使用、DBUils
实现用户的自动登录
文件的上传、文件的下载
过滤器解决编码问题
过滤器解决安全验证问题
监听器、反射、注解、泛型

搭建服务端环境,开发服务端程序Servlet,实现从客户端到服务端的交互操作。 JSP主要是做视图层的技术实现,而cookie和Session是其中最关键的两大内置对象, 比如浏览历史记录,用户设置自动登录等等都跟他们有关。 文件的上传和下载是项目中常用的功能,而过滤器和监听器是我 们开发全局通用性功能的高级技术
MVC

- 设计模式
ORM原理

自定义框架

提高编码能力与设计能力
ajax

- Ajax的工作原理、JSON解析
Ajax 数据格式(XML格式、HTML
格式、JSON格式、各种格式对比)
使用 jQuery 实现 Ajax(load()方法、
$.get()方法、$.post()方法、
序列化、Ajax应用)
聊天室小实例

Ajax是一种与服务端异步交互的技术,极大提高了客户端的体验效果。
jQuery

- jQuery选择器
jQuery的常用事件
事件冒泡
事件委派
jQuery中的动化
模拟操作
jQuery综合实例

Jquery是一个非常著名的js框架,帮助我们封装了很多通用性的API,提高我们开发客户端程序的效率
BootStrap

-响应式设计
BootStrap安装
Bootstrap 组件
进度条和列表组件
BootStrap综合实例

Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的前端框架,它简洁灵活,使得 Web 开发更加快捷
项目

- 讲解项目开发流程
项目简介、项目功能演示
项目功能实现分析
数据库设计分析
项目架构设计分析
实现网站首页的商品展示
实现商品详情页面
实现购物车功能
实现我的订单管理
项目验收

学员可以独立完成一个在线商城的项目,对项目开发流程有一个整体的认识和提升。
第三阶段 企业核心框架
框架和Maven

- 为什么用框架、流行的框架
Maven概述、使用Maven的优势
maven的一次构建、依赖管理
安装配置介绍.使用Maven核心概念介绍
( 坐标、依赖、仓库、插件、生命周期等)
Maven与第三方Elicpse整合及如何在Eclipse
中使用Maven、Maven私服Nexus的安装使用
如何使用Maven构建Web应用
使用Maven构建SSH应用
使用Maven进行多模块和继承使用

让学员了解框架的魅力,并且深入理解Maven框架依赖管理工具的。 Maven是一个项目管理工具,能够很方便的帮你管理项目报告, 生成站点,管理JAR文件,等等,如何大家SSM整合,解决了 很多依赖包的问题
Hibernate5

- ORM思想
hibernate5与JPA关系介绍
hibernate.cfg.xml配置
hbm.xml映射文件详解
主键生成策略 PO对象三种状态分析与切换
hibernate5一级缓存分析与测试
Hibernate5高级映射技术
Hibernate5多表联合查询
Hibernate5的性能优化
hibernate4及hibernate3区别及新特性介绍

Hibernate是一个开放源代码的对象关系映射框架, 它对JDBC进行了非常轻量级的对象封装, 它将POJO与数据库表建立映射关系,是一个全自动的orm框架, hibernate可以自动生成SQL语句,自动执行,使得Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。
JPA

- JPA 概述
JPA 注解
JPA 相关 API
JPA 映射
JPQL
二级缓存
Spring 整合 JPA

JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系, 并将运行期的实体对象持久化到数据库中
Struts2

- Struts2框架介绍 工作原理及架构分析 快速掌握Struts2开发模式 Struts.xml详解通配符的配置模式 ActionContext及ServletActionContext使用 类型自动转换机制、多模块的开发模式 单文件上传、多文件上传 文件下载、拦截器的介绍 默认拦截器、自定义拦截器 Token机制

Struts2是一个基于MVC设计模式的Web应用框架, 它本质上相当于一个servlet,在MVC设计模式中, Struts2作为控制器(Controller)来建立模型与 视图的数据交互。Struts 2是Struts的下一代产品, 是在 struts 1和WebWork的技术基础上进行了 合并的全新的Struts 2框架。
Spring4

- 框架原理介绍、框架环境搭建
快速入门
创建Bean的方式及实现原理
Bean种类、Bean生命周期
Bean的作用域、Bean的注值方式
SpEL、整合Junit测试
Web项目集成spring
注解装配Bean、AOP思想
AOP原理解剖、传统方式实现AOP开发
AspectJ介绍及实现AOP开发

Spring致力于J2EE应用的各层的解决方案,而 不是仅仅专注于某一层的方案。可以说Spring 是企业应用开发的“一站式”选择,并贯穿表现层、 业务层及持久层。然而,Spring并不想取代那些 已有的框架,而是与它们无缝地整合, 解决了传统的JavaEE开发效率低等问题
SpringMVC

- Spring MVC 概述 使用 @RequestMapping映射请求 请求处理方法签名概述 处理方法签名详细说明 使用 HttpMessageConverter 处理模型数据 数据绑定流程剖析 数据转换、数据格式化 数据校验、视图和视图解析器 处理方法的数据绑定

通过策略接口,Spring 框架是高度可配置的, 而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、 iText和POI。Spring MVC 框架并不知道 使用的视图,所以不会强迫您只使用 JSP 技术。 Spring MVC 分离了控制器、模型对象、 过滤器以及处理程序对象的角色, 这种分离让它们更容易进行定制。
博客、论坛项目整合和富文本编辑器

- 博客或论坛项目在面试中的意义
如何使用Maven构建框架开始写项目
业务流程
富文本编辑器整合
前后台的业务实现

在简历中有独立技术博客往往很受欢迎,因为这样的人 具有独立学习的能力。使用富文本编辑器完成博客的发表。我
MyBatis

- 安装和配置MyBatis
使用映射语句执行非查询语句
使用高级查询技术事务
使用动态SQL
使用高速缓存提高性能
MyBatis数据访问对象
DAO使用进阶

MyBatis 是支持普通 SQL查询,存储过程和高级映射 的优秀持久层框架。MyBatis 消除了几乎所有的JDBC 代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象) 映射成数据库中的记录。
项目整合

- 使用SSM整合博客或论坛项目

体现MyBatis的优越性
使用对比

使用MyBatis再对博客或者论坛项目进行整合, 体现出来现在另外一个流派使用MyBatis的优越性。
SpringData

- Spring Data 概述
Repository、CrudRepository
PagingAndSortingRepository
JpaRepository、条件查询
使用@Query自定义查询
@Query 与 @Modifying 执行更新操作
索引参数与命名参数
用@Query来指定本地查询
为某一个 Repository 上添加自定义方法
所有的 Repository 都添加自实现的方法

一个用于简化数据库访问,并支持云服务的开源框架。 其主要目标是使得数据库的访问变得方便快捷,并支持map-reduce框架和云计算数据服务
WebService

- WebService介绍


WebService的应用场景

Web Service技术, 能使得运行在 不同机器上的不同应用无须借助附加的、 专门的第三方软件或硬件, 就可相互交换数据或集成。
RestFul

- http协议
RestFul规范
postman使用
spring 实现 RestFul

提供了一组设计原则和约束条件。它主要用于客户端 和服务器交互类的软件。基于这个风格设计的 软件可以更简洁,更有层次,更易于实现缓存等机制
亿级并发架构演进

- 架构演进特点

大并发架构
微服务

亿级并发架构介绍
Linux基础

- 文件处理命令
权限管理命令、帮助命令
文件搜索命令
压缩解压命令
命令使用技巧
VIM使用、软件包管理
用户和用户组管理
服务和进程
基本网络设置
云服务器搭建和使用

掌握Linux的常用命令,熟悉Linux上下文编辑器,掌握Linux的文件管理控制等
搭建tomcat环境

- 在云服务器下搭建tomcatbr


和MySQL服务器

MySQL主从

- MySQL主从和binlog的配置

MySQL主从部署情况,MySQL进阶使用课程将全 面讲解如何架设多台MySQL服务器和MySQL数据过大时优化的问题
SSL证书配置

- 为什么使用SSL证书
RSA算法、DES算法
Let's Encrypt证书申请
证书续期

SSL证书配置,能够保证在电商系统、银行系统、 国防系统中的业务安全和数据传输的安全。
Activiti工作流引擎

- Activiti工作流引擎介绍
流程定义以及发布
流程定义以及发布
权限管理
工作流引擎

Activiti是一款目前使用范围很广的工作流引擎, 可以满足企业日常的自动化办公需求
MockMVC单元测试

- MockMVC测试Web工程


MockMVC SpringMVC工程

集成Web测试环境
SpringBoot零配置构建工程

- SpringBoot 结合 SpringMVC
SpringBoot 结合 Thymeleaf模
板引擎
SpringBoot 结合多模块开发
SpringBoot 结合文件上传
SpringBoot 结合websocket
SpringBoot 结合 Email邮件发送

全新的Spring Boot项目实战课程,让你快速掌握Spring Boot框架核心知识点!
svn & git & Jenkins持续集成

- svn介绍
svn服务器和客户搭建配置
如何使用svn
多人一起进行冲突解决
git常用命令、git的web hooks
为什么要使用持续集成
持续集成与git 的web hooks配使使用

SVN是团队作战的有效版本管理软件,本次项目将通过SVN来 进行项目开发中的版本控制,同时挑选后台项目中较有代表 性的功能来实战,贴近企业开发需求
echarts图表插件

- 图表介绍和选择什么样的图表
5分钟快速上手
常用API和模块
移动端自适应

基于Canvas的,纯Javascript 的图表库,提供直观, 生动,可交互,可个性化定制的数据可视化图表
UML和常用工具的使用

- UML的作用
UML常用工具的使用
UML的3个要素
UML的3个基本构造块
事物是对模型中最具有代表性的成分的抽象
5种图定义
UML的应用领域

Unified Modeling Language (UML)又称统一建模语言 或标准建模语言,是始于1997年一个OMG标准,它是一个 支持模型化和软件系统开发的图形化语言,为软件开发的 所有阶段提供模型化和可视化支持,包括由需求分析到规格, 到构造和配置。 面向对象的分析与设计(OOA&D,OOAD)方 法的发展在80年代末至90年代中出现了一个高潮,UML是 这个高潮的产物。它不仅统一了Booch、Rumbaugh 和Jacobson的表示方法,而且对其作了进一步的发展, 并最终统一为大众所接受的标准建模语言。
亿人同时在线的抢票系统

- 大并发系统的应用
大并发系统的分析
大并发系统的设计
大并发系统的开发
手把手带着学员完成
大并发系统

将集成全路客货运输信息,为社会和铁路客 户提供客货运输业务和公共信息查询服务。 客户通过登录本网站,可以查询旅客列车时 刻表、票价、列车正晚点、车票余票、售 票代售点并提供抢票功能。
第四阶段 高并发和分布式应用
Rpc和Dubbo

- 分布式服务框架简介
Dubbo主要核心部件
Dubbo-RPC基本功能
Dubbo-高级功能

在超大并发架构中将服务分为多个不同的微服务进行运行, 采用远程控制协议(RPC)可将业务端的任务分发给不同的多 个不同的微服务。
MyCat分库分表技术

- MyCat介绍
分库分开技术讲解
其他的数据库中间件
配置与自动分表

常用数据库中间件介绍
ActiveMQ队列

- 队列应用场景
常用的队列服务器
队列服务器的架设
压力测试

ActiveMQ队列可以实现秒杀时的排队效果,保证多 人同时写入服务器不崩溃,让业务排队降低同时压力过大的情况。
memcached

- MySQL引擎
memcached优势
memcached与Java配使用
memcached分布式处理

高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载
elasticsearch

- 为什么使用全文索引
elasticsearch与solr的对对
实时索引
分布式elasticsearch

一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全 文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的, 并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎
MySQL高级

- SQL优化技巧

MySQL分区

Explain分析

面试中常见的会考到MySQL优化和大并发技术下的MySQL技术
nginx反向代理和负载均衡

- nginx服务器的优势
nginx服务器配置
什么是反向代理
什么是负载均衡
负载均衡算法
构建数十台服务器的
负载均衡环境

负载均衡器能够保证http及各种网络请求转发至不同的 服务器上,保证多台服务器中一台崩溃,其他服务器也 能够正常运行,保证服务稳定
SpringSecurity(二选一)

- 加强URL访问安全
登录到Web应用
验证用户
加强方法调用的安全
做出访问控制决策
处理视图中的安全性
处理领域对象安全性

Spring Security是一个能够为基于Spring的企业应 用系统提供声明式的安全访问控制解决方案的安全框架
Shiro(二选一)

- Authentication
Authorization
Role
编程授权
Realm
Realms的认证实现
Realms的授权实现
Spring 集成 Shiro
Spring 集成 Shiro
基于注解的授权

一个强大的,易用的Java安全框架。它被用作于认证, 授权,加密,session管理。依赖于Shiro简单易懂 的API,就可以快速的构建包括手机,大型web和商业应用
Redis、MongoDB(二选一)

- redis安装redis数据类型
edis操作
java操作redis
edis写个带分页好友关系处理系统
Linux平台安装MongDB
MongDB插入、更新、删除、
查询文档、MongoDB条件操作符

redis一个开源的使用ANSI C语言编写、支持网络、 可基于内存亦可持久化的日志型、Key-Value数据库。 MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案
企业开发工具

- 自动构建工程
版本控制
缺陷管理
持续集成
自动化测试

实现企业自动化测试以及管理代码
zookepper

- zookeeper介绍
zookeeper工作流程
搭建zookeeper分布式
zookeeper客户端和CLI使用
zookeeper rmi高可用分布式
Netty NIO通信框架
zookeeper实现netty分布式架构

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务, 是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。 它是一个为分布式应用提供一致性服务的软件,提供的功能包括: 配置维护、域名服务、分布式同步、组服务等。 ZooKeeper的目标就是封装好复杂易出错的关键服务, 将简单易用的接口和性能高效、功能稳定的系统提供给用户。
综合项目实战1

- 各种项目特点分析
项目设计、项目分组
选择框架、后台搭建
使用Maven构建项目
项目开发、压力测试
webhooks项目自动部署
面试中常问到的项目问题
项目bug收集和解决
阿里云、腾讯云项目上线
项目验收、项目答辩

通过大型的商业性项目实战解决学员在公司中真实的模块化、 分组分的项目开发和设计,真正的体验企业级开发。并且通 过压力测试、bug收集、项目分析和讲解让学生对真正的企 业项目有进一步的了解。我们在云计算平台上让学生的项 目真实上线,体验项目运行在互联网上的感受。真正的实 现商业化、企业级项目实战。
综合项目实战2

- 使用Maven构建项目
项目开发、压力测试
webhooks项目自动部署
面试中常问到的项目问题
项目bug收集和解决
阿里云、腾讯云项目上线
项目验收、项目答辩

通过大型的商业性项目实战解决学员在公司中真实的模块化、 分组分的项目开发和设计,真正的体验企业级开发。 并且通过压力测试、bug收集、项目分析和讲解让学生 对真正的企业项目有进一步的了解。我们在云计算平 台上让学生的项目真实上线,体验项目运行在互联网 上的感受。真正的实现商业化、企业级项目实战。

在线申请

1 Java核心编程

2 JavaWeb实战

3 企业核心框架

4 高并发和分布式应

完成