本次培训课程,整个课程体系设计完备,思路清晰,学员通过本次课程的系统性学习可以掌握如下技能:
Java的基本语法结构、Java的面向对象特征、Java集合框架体系、Java泛型、异常处理、Java GUI编程、JDBC数据库编程、Java注释、Java的IO流体系、Java多线程编程、Java网络通信编程和Java反射机制。
覆盖了java.lang、java.util、java.text、java.io和java.nio、java.sql、java.awt、javax.swing包下绝大部分类和接口。
重点介绍了Java的模块化系统,还详细介绍了Java 10、Java 11的使用var声明局部变量、在Lambda表达式中使用var声明变量、改进的javac命令、基于嵌套的访问控制、HTTP Client网络编程,以及Java 10、Java 11新增的各种API功能。
课程并不单纯从知识角度来讲解Java,而是从解决问题的角度来介绍Java语言,讲课过程中涉及大量实用案例开发,这些案例既能让学员巩固每章的知识,又可以让学员学以致用,激发编程自豪感,进而引爆内心的编程激情。
课程覆盖Java 9/8/7,在大多数生产环境中,出于系统稳定性和升级成本的考量,使用的Java版本多是7/8,如果为了快速与大厂的开发环境接轨,建议选择Java 8。
课程同时也覆盖 Java 11,和10、12不同,11是Java的一个大版本,如果作为一种编程语言从零开始学习,尽可能多地掌握Java语言的新特性。
【课程大纲】(1天*6小时)
时间 | 内容 | 案例实践与练习 |
Day1 JavaSE | 第1章Java语言概述与开发环境 1.1 Java语言的发展简史 1.2 Java程序运行机制 1.2.1高级语言的运行机制 1.2.2 Java程序的运行机制和JVM 1.3开发Java的准备 1.3.1下载和安装Java 的JDK (Java8 Java11) 不是说JVM是运行Java程序的虚拟机吗?那JRE和JVM的关系是怎样的呢? 1.3.2设置PATH环境变量 为什么选择用户变量?用户变量与系统变量有什么区别? 1.4第一个Java程序 1.4.1编辑Java源代码 1.4.2编译Java程序 当编译C程序时,不仅需要指定存放目标文件的位置,也需要指定目标文件的文件名,这里使用javac编译Java程序时怎么不需要指定目标文件的文件名呢? 1.4.3运行Java程序 12 1.4.4根据CLASSPATH环境变量定位类 13 1.5 Java程序的基本规则 1.5.1 Java程序的组织形式 1.5.2 Java源文件的命名规则 1.5.3初学者容易犯的错误 1.6交互式工具:jshell 1.7 Java 11改进的垃圾回收器 1.8何时开始使用IDE工具 我想学习Java编程,到底是学习Eclipse好,还是学习IntelliJ IDEA好呢? 第2章 JAVA编码规范 2.1 编码风格 2.2 将编码惯例文档化以统一应用 2.3 维护旧程序比开发新程序更常见 2.4 不要认为修改程序很容易 2.5 慎重采用新技术 2.6 间隔相关编码准则 2.7 缩进相关编码准则 2.8 注释相关编码准则 2.9 标识符名称定义相关编码准则 2.10 运算符相关编码准则 2.11 编写清晰代码所需编码准则 2.12 编写可移植代码所需编码准则 2.13 提升性能所需编码准则 2.14 编写易于理解的代码所需编码准则 2.15 用户接口处理相关编码准则 2.16 编写零漏洞代码所需编码准则 2.17 提升生产效率所需编码准则 | 1 学员动手安装JAVA的环境,包括Windows Linux各环境
2 利用客户现有的平台工具建立版本控制
3 组织学员统一项目编码规范,布置大作业完成公司JAVA编码规范 |
Day2 JavaSE | 第3章 理解面向对象 3.1面向对象 3.1.1结构化程序设计简介 3.1.2程序的三种基本结构 3.1.3面向对象程序设计简介 3.1.4面向对象的基本特征 3.2 UML(统一建模语言)介绍 3.2.1 用例图 3.2.2 类图 3.2.3 组件图 3.2.4 部署图 3.2.5 顺序图 3.2.6 活动图 3.2.7 状态机图 3.3 Java的面向对象特征 3.3.1 一切都是对象 3.3.2 类和对象 第4章 数据类型和运算符 4.1 注释 4.1.1 单行注释和多行注释 4.1.2 文档注释 API文档是什么? 为什么要学习查看API文档的方法? 4.2 标识符和关键字 4.2.1分隔符 4.2.2 标识符规则 4.2.3 Java关键字 4.3 数据类型分类 什么是变量?变量有什么用? 50 4.4 基本数据类型 4.4.1 整型 4.4.2 字符型 什么是字符集? 4.4.3浮点型 4.4.4数值中使用下画线分隔 4.4.5布尔型 4.4.6使用var定义变量 4.5基本类型的类型转换 4.5.1 自动类型转换 4.5.2 强制类型转换 4.5.3 表达式类型的自动提升 4.6 直接量 4.6.1 直接量的类型 4.6.2 直接量的赋值 4.7 运算符 4.7.1算术运算符 4.7.2赋值运算符 4.7.3位运算符 4.7.4扩展后的赋值运算符 4.7.5比较运算符 4.7.6逻辑运算符 4.7.7三目运算符 4.7.8运算符的结合性和优先级 | 1 随堂完成对应知识点的测试及实战
2完成大作业JAVA编码规范相应章节 |
Day3 JavaSE
| 第5章 流程控制与数组 5.1顺序结构 5.2分支结构 5.2.1 if条件语句 5.2.2 Java 11改进的switch分支语句 5.3 循环结构 5.3.1 while循环语句 5.3.2 do while循环语句 5.3.3 for循环 5.3.4 嵌套循环 5.4 控制循环结构 5.4.1 使用break结束循环 5.4.2 使用continue忽略本次循环剩下语句 5.4.3 使用return结束方法 5.5 数组类型 5.5.1理解数组:数组也是一种类型 int[]是一种类型吗?怎么使用这种类型呢? 5.5.2 定义数组 5.5.3 数组的初始化 能不能只分配内存空间,不赋初始值呢? 5.5.4 使用数组 为什么要我记住这些异常信息? 5.5.5 foreach循环 5.6 深入数组 5.6.1 内存中的数组 为什么有栈内存和堆内存之分? 5.6.2 基本类型数组的初始化 5.6.3 引用类型数组的初始化 5.6.4 没有多维数组 5.6.5 操作数组的工具类:Arrays 5.6.6 数组应用举例 第6章 面向对象(上) 6.1 类和对象 6.1.1 定义类 构造器不是没有返回值吗?为什么不能用void声明呢? 6.1.2 对象的产生和使用 6.1.3 对象、引用和指针 6.1.4 对象的this引用 6.2 方法详解 6.2.1 方法的所属性 6.2.2 方法的参数传递机制 6.2.3 形参个数可变的方法 6.2.4 递归方法 6.2.5 方法重载 为什么方法的返回值类型不能用于区分重载的方法? 6.3 成员变量和局部变量 6.3.1 成员变量和局部变量 6.3.2 成员变量的初始化和内存中的运行机制 6.3.3 局部变量的初始化和内存中的运行机制 6.3.4 变量的使用规则 6.4隐藏和封装 6.4.1理解封装 6.4.2使用访问控制符 6.4.3 package、import和import static 6.4.4 Java的常用包 6.5 深入构造器 6.5.1使用构造器执行初始化 构造器是创建Java对象的途径,是不是说构造器完全负责创建Java对象? 6.5.2构造器重载 为什么要用this来调用另一个重载的构造器?我把另一个构造器里的代码复制、粘贴到这个构造器里不就可以了吗? 6.6类的继承 6.6.1 继承的特点 6.6.2重写父类的方法 6.6.3 super限定 6.6.4调用父类构造器 为什么我创建Java对象时从未感觉到java.lang. Object类的构造器被调用过? 6.7多态 6.7.1多态性 6.7.2引用变量的强制类型转换 6.7.3 instanceof运算符 6.8 继承与组合 6.8.1 使用继承的注意点 6.8.2 利用组合实现复用 使用组合关系来实现复用时,需要创建两个Animal对象,是不是意味着使用组合关系时系统开销更大? 6.9 初始化块 6.9.1 使用初始化块 6.9.2实例初始化块和构造器 6.9.3 类初始化块 | |
Day4 JavaSE | 第7章 面向对象(下) 7.1 包装类 Java为什么要对这些数据进行缓存呢? 7.2 处理对象 7.2.1打印对象和toString方法 7.2.2==和equals方法 上面程序中判断obj是否为Person类的实例时,为何不用obj instanceof Person来判断呢? 7.3类成员 7.3.1理解类成员 7.3.2单例(Singleton)类 7.4 final修饰符 7.4.1 final成员变量 7.4.2 final局部变量 7.4.3 final修饰基本类型变量和引用类型变量的区别 7.4.4可执行“宏替换”的final变量 7.4.5 final方法 7.4.6 final类 7.4.7 不可变类 7.4.8缓存实例的不可变类 7.5抽象类 7.5.1抽象方法和抽象类 7.5.2抽象类的作用 7.6 Java 9改进的接口 7.6.1接口的概念 7.6.2 Java 9中接口的定义 7.6.3 接口的继承 7.6.4使用接口 7.6.5接口和抽象类 7.6.6面向接口编程 7.7内部类 7.7.1非静态内部类 学生提问:非静态内部类对象和外部类对象的关系是怎样的? 7.7.2 静态内部类 为什么静态内部类的实例方法也不能访问外部类的实例属性呢? 学生提问:接口里是否能定义内部接口? 7.7.3 使用内部类 既然内部类是外部类的成员,那么是否可以为外部类定义子类,在子类中再定义一个内部类来重写其父类中的内部类呢? 7.7.4局部内部类 7.7.5匿名内部类 7.8 Java 11增强的Lambda表达式 7.8.1 Lambda表达式入门 7.8.2 Lambda表达式与函数式接口 7.8.3 在Lambda表达式中使用var 7.8.4方法引用与构造器引用 7.8.5 Lambda表达式与匿名内部类的联系和区别 7.8.6 使用Lambda表达式调用Arrays的类方法 7.9枚举类 7.9.1手动实现枚举类 7.9.2枚举类入门 7.9.3 枚举类的成员变量、方法和构造器 7.9.4 实现接口的枚举类 枚举类不是用final修饰了吗?怎么还能派生子类呢? 7.9.5包含抽象方法的枚举类 7.10对象与垃圾回收 7.10.1对象在内存中的状态 7.10.2 强制垃圾回收 7.10.3 finalize方法 7.10.4 对象的软、弱和虚引用 7.11修饰符的适用范围 7.12 多版本JAR包
第8章 Java基础类库 8.1 与用户互动
8.2系统相关
8.3 常用类
8.4 Java 8的日期、时间类
8.5 正则表达式
8.6 变量处理和方法处理
8.7 Java 11改进的国际化与格式化
8.8 Java 8新增的日期、时间格式器
| |
Day5 JavaSE | 第9章 Java集合 9.1 Java集合概述 9.2 Java 11增强的Collection和Iterator接口
9.3 Set集合
9.4 List集合
9.5 Queue集合
9.6 增强的Map集合
9.7 HashSet和HashMap的性能选项 9.8 操作集合的工具类:Collections
第10章 泛型 10.1 泛型入门
10.2 深入泛型
10.3 类型通配符
10.4 泛型方法
10.5 擦除和转换 10.6 泛型与数组 | |
Day6 JavaSE | 第11章 异常处理 11.1异常概述 11.2异常处理机制
11.3 Checked异常和Runtime异常体系
11.4 使用throw抛出异常
11.5 Java的异常跟踪栈 11.6异常处理规则
第12章 AWT编程 12.1 Java改进的GUI(图形用户界面)和AWT 12.2 AWT容器 12.3布局管理器
12.4 AWT常用组件
12.5 事件处理
12.6 AWT菜单
12.7 在AWT中绘图
12.8 处理位图
12.9 剪贴板
| |
Day7 JavaSE 数据库及JDBC | 第13章 Swing编程 13.1 Swing概述 13.2 Swing基本组件的用法
13.3 Swing中的特殊容器
13.4 Swing简化的拖放功能 13.5 Java 7新增的Swing功能
13.6 使用JProgressBar、ProgressMonitor和BoundedRangeModel创建进度条
13.7 使用JSlider和BoundedRangeModel创建滑动条 13.8 使用JSpinner和SpinnerModel创建微调控制器 13.9 使用JList、JComboBox创建列表框
13.10使用JTree和TreeModel创建树
13.11使用JTable和TableModel创建表格
13.12使用JFormattedTextField和JTextPane创建格式文本
第14章 MySQL数据库与JDBC编程 14.1 JDBC基础
14.2 SQL语法
14.3 JDBC的典型用法
14.4 执行SQL语句的方式
14.5管理结果集
14.6 使用RowSet 1.1包装结果集
14.7 事务处理
14.8分析数据库信息
14.9 使用连接池管理连接
| |
Day8 数据库及JDBC | 第15章 注解(Annotation) 15.1 基本注解
15.2 JDK的元注解
15.3 自定义注解
15.4编译时处理注解 第16章 输入/输出 16.1 File类
16.2 理解Java的IO流
16.3 字节流和字符流
16.4 输入/输出流体系
16.5重定向标准输入/输出 16.6 Java虚拟机读写其他进程的数据 16.7 RandomAccessFile 16.8 Java 9改进的对象序列化
16.9 NIO
16.10 NIO.2的功能和用法
| |
Day9 JavaSE | 第17章 多线程 17.1 线程概述
17.2 线程的创建和启动
17.3线程的生命周期
17.4控制线程
17.5 线程同步
17.6 线程通信
17.7 线程组和未处理的异常 17.8 线程池
17.9 线程相关类
第18章 网络编程 18.1网络编程的基础知识
18.2 Java的基本网络支持
18.3 基于TCP协议的网络编程
18.4基于UDP协议的网络编程
18.5使用代理服务器
18.6 Java 11标准化的HTTP Client
| |
Day10 JavaSE 版本控制之道:Subversion | 第19章 类加载机制与反射 19.1 类的加载、连接和初始化
19.2 类加载器
19.3通过反射查看类信息
19.4 使用反射生成并操作对象
19.5 使用反射生成JDK动态代理
19.6 反射和泛型
研发平台集成工具:版本控制之道:Subversion 第1章 简介 1.1 现实生活中的版本控制 1.2 路线图 1.3 为什么选择SubversioN 第2章 什么是版本控制 2.1 项目仓库 2.2 我们需要存储什么 2.3 工作拷贝和操作文件 2.4 项目,目录以及文件 2.5 版本从何而来 2.6 标签 2.7 分支 2.8 合并 2.9 加锁策略的选择 2.10 配置管理(CM) 第3章 Subversion入门 3.1 安装Suversion 3.2 创建项目仓库 3.3 创建简单的项目 3.4 开始开发一个项目 3.5 修改 3.6 更新项目仓库 3.7 当世界产生碰撞时 3.8 解决冲突 第4章 实例指导 4.1 我们的基本哲学 4.2 使用版本控制系统的一些重要步骤 第5章 访问项目仓库 5.1 网络协议 5.2 选择如何联网 第6章 常见的Subversion命令 6.1 把东西签出来 6.2 保持更新 6.3 添加文件和目录 6.4 属性 6.5 拷贝、移动文件和目录 6.6 查看改变了什么 6.7 处理合并冲突 6.8 提交改动 6.9 查看改动历史 6.10 移除改动 第7章 文件加锁和二进制文件 7.1 文件加锁概览 7.2 实战文件加锁 7.3 何时使用加锁 第8章 组织你的项目仓库 8.1 简单的项目 8.2 多个项目 8.3 多个项目仓库 第9章 使用标签和分支 9.1 标签和分支 9.2 创建发布分支 第10章 创建项目 | |
Day11 JavaWeb Spring/springMVC mybatis | 第1章 Java EE应用和开发环境 1.1 Java EE应用概述 1.1.1 Java EE应用的分层模型 1.1.2 Java EE应用的组件 1.1.3 Java EE应用的结构和优势 1.1.4 常用的Java EE服务器 1.2 轻量级Java EE应用相关技术 1.2.1 JSP、Servlet 4.x和JavaBean及替代技术 1.2.2 Spring MVC及替代技术 1.2.3 MyBatis及替代技术 1.2.4 Spring及替代技术 1.3 Tomcat的下载和安装 1.3.1 安装Tomcat服务器 1.3.2 配置Tomcat的服务端口 1.3.3 进入控制台 1.3.4 部署Web应用 1.3.5 配置Tomcat的数据源 1.4 Eclipse的安装和使用 1.4.1 Eclipse的下载和安装 1.4.2 在线安装Eclipse插件 1.4.3 从本地压缩包安装插件 1.4.4 手动安装Eclipse插件 1.4.5 使用Eclipse开发Java Web应用 1.4.6 导入Eclipse项目 1.4.7 导入非Eclipse项目 1.5 Ant的安装和使用 1.5.1 Ant的下载和安装 1.5.2 使用Ant工具 1.5.3 定义生成文件 1.5.4 Ant的任务(task) 1.6 Maven的安装和使用 1.6.1 下载和安装Maven 1.6.2 设置Maven 1.6.3 创建、构建简单的项目 1.6.4 Maven的核心概念 1.6.5 依赖管理 1.6.6 POM文件的元素 1.7 使用Git进行软件配置管理(SCM) 1.7.1 下载和安装Git、TortoiseGit 1.7.2 创建本地资源库 1.7.3 添加文件和文件夹 1.7.4 提交修改 1.7.5 查看文件或文件夹的版本变更 1.7.6 删除文件或文件夹 1.7.7 从以前版本重新开始 1.7.8 克隆项目 1.7.9 创建分支 1.7.10 沿着分支开发 1.7.11 合并分支 1.7.12 使用Eclipse作为Git客户端 1.7.13 配置远程中央资源库 1.7.14 推送项目 1.7.15 获取项目和拉取项目 第2章 MyBatis的基础用法 2.1 MyBatis是ORM框架吗 2.1.1 何谓ORM 2.1.2 ORM的映射方式 2.1.3 MyBatis的映射方式 2.2 MyBatis入门 2.2.1 MyBatis的下载和安装 2.2.2 MyBatis的数据库操作 2.2.3 使用MyBatis执行CRUD 2.2.4 利用Mapper对象 2.2.5 在Eclipse中使用MyBatis 2.3 MyBatis核心API及作用域 2.3.1 SqlSessionFactoryBuilder的作用域 2.3.2 SqlSessionFactory的作用域 2.3.3 SqlSession及其作用域 2.3.4 Mapper组件的作用域 2.4 MyBatis配置详解 2.4.1 属性配置 2.4.2 设置配置 2.4.3 为类型配置别名 2.4.4 对象工厂 2.4.5 加载Mapper 2.5 类型处理器 2.5.1 内置的类型处理器 2.5.2 自定义类型处理器 2.5.3 枚举的类型处理器 2.5.4 存储枚举值的序号 2.5.5 同时存储枚举值的名称和序号 2.6 数据库环境配置 2.6.1 环境配置与默认环境配置 2.6.2 事务管理器 2.6.3 数据源配置 2.6.4 配置第三方C3P0数据源 2.7 支持不同类型的数据库 2.8 Mapper基础 2.8.1 select的用法 2.8.2 insert的用法 2.8.3 使用useGeneratedKeys返回 自增长的主键值 2.8.4 使用selectKey生成主键值 2.8.5 update和delete元素的用法 2.8.6 使用sql元素定义可复用的SQL片段 2.8.7 参数处理 2.8.8 参数的额外声明 2.8.9 字符串替换 2.9 MyBatis代码生成器 2.9.1 提供配置文件 2.9.2 运行MBG | |
Day12 JavaWeb Spring/springMVC mybatis | 第3章 深入使用MyBatis 3.1 结果集映射 3.1.1 简单resultMap映射 3.1.2 构造器映射 3.1.3 自动映射 3.2 调用存储过程 3.2.1 调用返回结果集的存储过程 3.2.2 调用带out模式参数的存储过程 3.2.3 调用传出参数为游标引用的存储过程 3.3 关联映射 3.3.1 基于嵌套select的一对一映射 3.3.2 基于嵌套select映射策略的性能缺陷 3.3.3 延迟加载的原理 3.3.4 基于多表连接查询的一对一映射 3.3.5 基于多结果集的一对一映射 3.3.6 基于嵌套select的一对多映射 3.3.7 基于多表连接查询的一对多映射 3.3.8 基于多结果集的一对多映射 3.3.9 多对多映射的三种策略 3.4 基于辨别者列的继承映射 3.4.1 继承映射的简单示例 3.4.2 继承映射的复杂示例 3.5 动态SQL 3.5.1 if元素的用法 3.5.2 在update更新列中使用if 3.5.3 在insert动态插入列中使用if 3.5.4 choose、when、otherwise元素的 用法 3.5.5 where与trim的用法 3.5.6 set与trim的用法 3.5.7 使用trim实现动态插入 3.5.8 foreach元素的基本用法 3.5.9 foreach实现批量插入 3.5.10 foreach实现批量更新 3.5.11 bind元素的用法 3.6 缓存 3.6.1 一级缓存 3.6.2 一级缓存的脏数据与避免方法 3.6.3 二级缓存 3.6.4 二级缓存的脏数据与避免方法 3.6.5 整合Ehcache实现二级缓存 3.7 用插件扩展MyBatis 3.7.1 拦截器接口及作用原理 3.7.2 可拦截的目标 3.7.3 为MyBatis开发分页插件 第4章 Spring的基础用法 4.1 Spring简介和Spring 5的变化 4.1.1 Spring简介 4.1.2 Spring 5.x的变化 4.2 Spring入门 4.2.1 Spring的下载和安装 4.2.2 使用Spring管理Bean 4.2.3 在Eclipse中使用Spring 4.3 Spring的核心机制:依赖注入 4.3.1 理解依赖注入 4.3.2 设值注入 4.3.3 构造注入 4.3.4 两种注入方式的对比 4.4 使用Spring容器 4.4.1 Spring容器 4.4.2 使用ApplicationContext 4.4.3 ApplicationContext的国际化支持 4.4.4 ApplicationContext的事件机制 4.4.5 让Bean获取Spring容器 4.5 Spring容器中的Bean 4.5.1 Bean的基本定义和Bean别名 4.5.2 容器中Bean的作用域 4.5.3 配置依赖 4.5.4 设置普通属性值 4.5.5 配置合作者Bean 4.5.6 使用自动装配注入合作者Bean 4.5.7 注入嵌套Bean 4.5.8 注入集合值 4.5.9 组合属性 4.5.10 Spring的Bean和JavaBean 4.6 Spring的Java配置管理 4.7 创建Bean的三种方式 4.7.1 使用构造器创建Bean 4.7.2 使用静态工厂方法创建Bean 4.7.3 使用实例工厂方法创建Bean 4.8 深入理解容器中的Bean 4.8.1 抽象Bean与子Bean 4.8.2 Bean继承与Java继承的区别 4.8.3 容器中的工厂Bean 4.8.4 获得Bean本身的id 4.8.5 强制初始化Bean 4.9 容器中Bean的生命周期 4.9.1 依赖关系注入之后的行为 4.9.2 Bean销毁之前的行为 4.9.3 协调作用域不同步的Bean 4.10 高级依赖关系配置 4.10.1 获取其他Bean的属性值 4.10.2 获取Field值 4.10.3 获取方法的返回值 4.11 基于XML Schema的简化配置方式 4.11.1 使用p:命名空间简化配置 4.11.2 使用c:命名空间简化配置 4.11.3 使用util:命名空间简化配置 4.12 Spring表达式语言 4.12.1 使用Expression接口进行表达式求值 4.12.2 Bean定义中的表达式语言支持 4.12.3 SpEL语法详述 | |
Day13 JavaWeb Spring/springMVC mybatis | 第5章 深入使用Spring 5.1 两种后处理器 5.1.1 Bean后处理器 5.1.2 Bean后处理器的用处 5.1.3 容器后处理器 5.1.4 属性占位符配置器 5.1.5 重写占位符配置器 5.2 “零配置”支持 5.2.1 搜索Bean类 5.2.2 指定Bean的作用域 5.2.3 使用@Resource、@Value配置依赖 5.2.4 使用@PostConstruct和@PreDestroy定制生命周期行为 5.2.5 @DependsOn和@Lazy 5.2.6 自动装配和精确装配 5.2.7 Spring 5新增的注解 5.3 资源访问 5.3.1 Resource实现类 5.3.2 ResourceLoader接口和 ResourceLoaderAware接口 5.3.3 使用Resource作为属性 5.3.4 在ApplicationContext中使用资源 5.4 Spring的AOP 5.4.1 为什么需要AOP 5.4.2 使用AspectJ实现AOP 5.4.3 AOP的基本概念 5.4.4 Spring的AOP支持 5.4.5 基于注解的“零配置”方式 5.4.6 基于XML配置文件的管理方式 5.5 Spring的缓存机制 5.5.1 启用Spring缓存 5.5.2 使用@Cacheable执行缓存 5.5.3 使用@CacheEvict清除缓存数据 5.6 Spring的事务 5.6.1 Spring支持的事务策略 5.6.2 使用XML Schema配置事务策略 5.6.3 使用@Transactional 5.7 Spring整合MyBatis 5.7.1 整合MyBatis的关键点及快速入门 5.7.2 配置SqlSessionFactory 5.7.3 通过工厂Bean配置Mapper组件 5.7.4 通过扫描自动配置Mapper组件 5.7.5 基于SqlSession实现DAO组件 5.7.6 继承SqlSessionDaoSupport实现DAO组件 5.7.7 事务管理 第6章 Spring MVC的基础用法 6.1 MVC概述 6.1.1 MVC模式及其优势 6.1.2 Spring MVC与Struts 2的区别 6.2 Spring MVC入门 6.2.1 在Web应用中启动Spring容器 6.2.2 配置核心控制器 6.2.3 开发控制器 6.2.4 提供视图资源 6.2.5 使用Eclipse开发Spring MVC应用 6.3 Spring MVC的流程 6.3.1 Spring MVC应用的开发步骤 6.3.2 Spring MVC的运行流程 6.3.3 DispatcherServlet详解 6.3.4 mvc:annotation-driven详解 6.4 静态资源处理 6.4.1 静态资源映射 6.4.2 配置默认Servlet 6.5 视图解析器 6.5.1 UrlBasedViewResolver的功能与用法 6.5.2 InternalResourceViewResolver的功能与用法 6.5.3 XmlViewResolver及视图解析器的链式处理 6.5.4 ResourceBundleViewResolver的功能与用法 6.5.5 BeanNameViewResolver的功能与用法 6.5.6 重定向视图 6.5.7 将数据传给重定向目标 6.5.8 ContentNegotiatingViewResolver的功能与用法 6.6 请求映射与参数处理 6.6.1 HandlerMapping与处理映射 6.6.2 SimpleUrlHandlerMapping的功能与用法 6.6.3 @RequestMapping注解及其变体 6.6.4 处理方法允许的返回值类型 6.6.5 @RequestParam注解与MultiValueMap 6.6.6 使用@PathVariable获取路径变量的值 6.6.7 使用@PathVariable处理正则 表达式 6.6.8 路径模式 6.6.9 使用@MatrixVariable处理Matrix变量 6.6.10 使用@RequestHeader获取请求头的值 6.6.11 异步处理 6.6.12 使用DeferredResult支持异步处理 6.6.13 使用@ModelAttribute修饰方法本身 6.6.14 使用@ModelAttribute修饰方法参数 6.7 将数据传给视图页面 6.7.1 Model、ModelMap和RedirectAttributes 6.7.2 使用@SessionAttributes添加session属性 6.8 RESTful服务支持 6.8.1 RESTful简介 6.8.2 @RequestBody与@ResponseBody注解 6.8.3 HttpMessageConverter与消息转换 6.8.4 转换XML数据 6.8.5 使用@RestController修饰RESTful控制器 6.8.6 @CrossOrigin注解与跨域请求 6.9 访问Servlet API相关数据 6.9.1 处理方法可接受的形参类型 6.9.2 使用@RequestAttribute获取请求属性 6.9.3 使用@SessionAttribute获取session属性 6.9.4 直接访问Servlet API 6.9.5 使用WebRequest和NativeWebRequest伪访问 6.9.6 使用@CookieValue获取cookie值 6.9.7 在处理方法中使用IO流 | |
Day14 JavaWeb Spring/springMVC mybatis | 第7章 深入使用Spring MVC 7.1 国际化 7.1.1 国际化到底怎么做 7.1.2 根据浏览器请求头确定Locale 7.1.3 根据session确定Locale 7.1.4 根据cookie值确定Locale 7.2 异常处理 7.2.1 Spring MVC异常处理 7.2.2 传统的异常处理机制 7.2.3 使用@ResponseStatus修饰异常类 7.2.4 使用@ExceptionHandler修饰异常处理方法 7.2.5 使用@ControllerAdvice定义异常Aspect 7.2.6 使用@RestControllerAdvice定义异常Aspect 7.3 标签库 7.3.1 form标签与普通表单域标签 7.3.2 radiobutton和radiobuttons标签 7.3.3 checkbox和checkboxes标签 7.3.4 select和option、options标签 7.3.5 htmlEscape和escapeBody标签 7.3.6 url和param标签 7.4 类型转换与绑定 7.4.1 BeanWrapper简介 7.4.2 PropertyEditor与内置实现类 7.4.3 自定义PropertyEditor 7.4.4 使用WebBindingInitializer注册全局PropertyEditor 7.4.5 使用ConversionService执行转换 7.4.6 处理转换错误 7.5 格式化 7.5.1 使用格式化器 7.5.2 使用FormatterRegistrar注册 格式化器 7.6 数据校验 7.6.1 使用Validation执行校验 7.6.2 基于JSR 303执行校验 7.7 文件上传与下载 7.7.1 使用MultipartFile处理文件上传 7.7.2 基于Commons FileUpload组件 上传文件 7.7.3 使用@RequestPart注解 7.7.4 文件下载 7.7.5 下载前的授权控制 7.8 拦截器 7.9 SSM整合开发 7.9.1 搭建项目 7.9.2 开发Mapper组件 7.9.3 开发Service组件 7.9.4 控制器与视图 第8章 简单工作流系统 8.1 项目背景及系统结构 8.1.1 应用背景 8.1.2 系统功能介绍 8.1.3 相关技术介绍 8.1.4 系统结构 8.1.5 系统的功能模块 8.2 领域对象层 8.2.1 设计领域对象 8.2.2 创建领域对象类 8.3 实现Mapper(DAO)层 8.3.1 Mapper组件的定义 8.3.2 实现Mapper组件 8.3.3 部署Mapper层 8.4 实现Service层 8.4.1 业务逻辑组件的设计 8.4.2 实现业务逻辑组件 8.4.3 事务管理 8.4.4 部署业务逻辑组件 8.5 实现任务的自动调度 8.5.1 使用Quartz 8.5.2 在Spring中使用Quartz 8.6 实现系统Web层 8.6.1 配置核心控制器和启动Spring容器 8.6.2 控制器的处理顺序 8.6.3 员工登录 8.6.4 进入打卡 8.6.5 处理打卡 8.6.6 进入申请 8.6.7 提交申请 8.6.8 使用拦截器完成权限管理 | |
Day15 HTML JavaScript CSS | 第1章 HTML5基础 通过19个实例进行学习 1.1 新建文档 1.1.1 定义空白文档 1.1.2 添加网页内容 1.1.3 简化HTML5文档 1.2 头部信息 1.2.1 定义网页标题 1.2.2 定义网页元信息 1.2.3 定义文档视口 1.3 基本结构 1.3.1 定义文档结构 1.3.2 使用div元素 1.3.3 使用id和class 1.3.4 使用title 1.3.5 使用role 1.3.6 HTML注释 1.4 HTML5主结构 1.4.1 定义页眉 1.4.2 定义导航 1.4.3 定义主要区域 1.4.4 定义文章块 1.4.5 定义区块 1.4.6 定义附栏 1.4.7 定义页脚 1.5 项目实战 第2章 HTML5文本 通过24个实例进行学习 2.1 标题和正文 2.1.1 标题 2.1.2 段落 2.2 描述性信息 2.2.1 强调 2.2.2 注解 2.2.3 备选 2.2.4 上下标 2.2.5 术语 2.2.6 代码 2.2.7 预定义格式 2.2.8 缩写词 2.2.9 编辑提示 2.2.10 引用 2.2.11 引述 2.2.12 换行显示 2.2.13 修饰 2.2.14 非文本注解 2.3 实用性标记 2.3.1 高亮显示 2.3.2 进度 2.3.3 刻度 2.3.4 时间 2.3.5 联系信息 2.3.6 显示方向 2.3.7 换行断点 2.3.8 标注 第3章 HTML5图像和多媒体 通过11个实例进行学习 3.1 网页图像 3.1.1 定义图像 3.1.2 定义流 3.1.3 定义图标 3.2 响应式图像 3.2.1 响应视图大小 3.2.2 响应屏幕方向 3.2.3 响应像素密度 3.2.4 响应图像格式 3.2.5 自适应像素比 3.2.6 自适应视图宽 3.3 音频和视频 3.3.1 使用embed 3.3.2 使用object 3.3.3 使用audio 3.3.4 使用video 3.4 项目实战 3.4.1 设计MP3播放器 3.4.2 设计视频播放器 | |
Day16 HTML JavaScript CSS | 第4章 HTML5列表和超链接 通过18个实例进行学习 4.1 HTML5列表 4.1.1 无序列表 4.1.2 有序列表 4.1.3 项目编号 4.1.4 嵌套列表 4.1.5 描述列表 4.1.6 菜单列表 4.1.7 快捷菜单 4.1.8 添加命令 4.1.9 设计快捷命令 4.1.10 设计任务列表 4.2 HTML5超链接 4.2.1 普通链接 4.2.2 块链接 4.2.3 锚点链接 4.2.4 目标链接 4.2.5 电子邮件链接 4.2.6 下载链接 4.2.7 图像热点 4.2.8 框架链接 4.3 项目实战 4.3.1 设计导航页面 4.3.2 设计九宫格版式 4.3.3 设计用户管理界面 第5章 HTML5表格 通过16个实例进行学习 5.1 定义表格 5.1.1 普通表格 5.1.2 列标题 5.1.3 表格标题 5.1.4 表格行分组 5.1.5 表格列分组 5.2 表格属性 5.2.1 单线表格 5.2.2 分离单元格 5.2.3 细线边框 5.2.4 表格说明 5.3 单元格属性 5.3.1 跨单元格显示 5.3.2 表头单元格 5.3.3 绑定表头 5.3.4 信息缩写 5.3.5& 刘晖老师的其他课程
相关课程
添加企业微信1V1服务,高效匹配老师欢迎各种培训合作扫码联系,我们将竭诚为您服务
|