JavaEE框架技术

彭红伟、骆丽华、李康顺、聂鹏、袁大伟、孟雨、王诗雅、张新伟、聂军、谢备

目录

  • 1 初识MyBatis框架
    • 1.1 框架概述
    • 1.2 框架的优势
    • 1.3 当前主流框架
    • 1.4 传统JDBC的劣势
    • 1.5 MyBatis概述
    • 1.6 MyBatis环境搭建
    • 1.7 MyBatis入门程序
    • 1.8 MyBatis工作原理
    • 1.9 扩展阅读
    • 1.10 章节测试
  • 2 MyBatis的核心配置
    • 2.1 SqlSessionFactoryBuilder对象
    • 2.2 SqlSessionFactory对象
    • 2.3 SqlSession对象
    • 2.4 MyBatis配置文件的主要元素
    • 2.5 <properties>元素
    • 2.6 <settings>元素
    • 2.7 <typeAliases>元素
    • 2.8 <environments>元素
    • 2.9 <mappers>元素
    • 2.10 MyBatis映射文件中的常用元素
    • 2.11 <select>元素
    • 2.12 <insert>元素
    • 2.13 <update>元素
    • 2.14 <delete>元素
    • 2.15 <sql>元素
    • 2.16 <resultMap>元素
    • 2.17 案例:员工管理系统
    • 2.18 扩展阅读
    • 2.19 章节测试
  • 3 动态SQL
    • 3.1 动态SQL中的元素
    • 3.2 <if>元素
    • 3.3 <choose>、<when>、<otherwise>元素
    • 3.4 <where>元素
    • 3.5 <trim>元素
    • 3.6 更新操作
    • 3.7 <foreach>元素中的属性
    • 3.8 <foreach>元素迭代数组
    • 3.9 <foreach>元素迭代List
    • 3.10 <foreach>元素迭代Map
    • 3.11 案例:学生信息查询系统
    • 3.12 扩展阅读
    • 3.13 章节测试
  • 4 MyBatis的关联映射和缓存机制
    • 4.1 关联映射概述
    • 4.2 一对一查询
    • 4.3 一对多查询
    • 4.4 多对多查询
    • 4.5 一级缓存
    • 4.6 二级缓存
    • 4.7 案例:商品的类别
    • 4.8 扩展阅读
    • 4.9 章节测试
  • 5 MyBatis的注解开发
    • 5.1 @Select注解
    • 5.2 @Insert注解
    • 5.3 @Update注解
    • 5.4 @Delete注解
    • 5.5 @Param注解
    • 5.6 一对一查询
    • 5.7 一对多查询
    • 5.8 多对多查询
    • 5.9 案例:基于MyBatis注解的学生 管理程序
    • 5.10 扩展阅读
    • 5.11 章节测试
  • 6 初识Spring框架
    • 6.1 Spring概述
    • 6.2 Spring框架的优点
    • 6.3 Spring的体系结构
    • 6.4 Spring 5的新特性
    • 6.5 Spring的下载及目录结构
    • 6.6 Spring的入门程序
    • 6.7 控制反转的概念
    • 6.8 依赖注入的概念
    • 6.9 依赖注入的类型—构造方法注入
    • 6.10 依赖注入的类型—属性setter方法注入
    • 6.11 依赖注入的应用
    • 6.12 扩展阅读
    • 6.13 章节测试
  • 7 Spring中的Bean的管理
    • 7.1 BeanFactory接口
    • 7.2 ApplicationContext接口
    • 7.3 Bean的配置
    • 7.4 构造方法实例化
    • 7.5 静态工厂实例化
    • 7.6 实例工厂实例化
    • 7.7 singleton作用域
    • 7.8 prototype作用域
    • 7.9 基于XML的装配
    • 7.10 基于注解的装配
    • 7.11 自动装配
    • 7.12 Bean的生命周期
    • 7.13 扩展阅读
    • 7.14 章节测试
  • 8 Spring AOP
    • 8.1 Spring AOP概述
    • 8.2 Spring AOP术语
    • 8.3 JDK动态代理
    • 8.4 CGLib动态代理
    • 8.5 基于XML的AOP实现
    • 8.6 基于注解的AOP实现
    • 8.7 扩展阅读
    • 8.8 章节测试
  • 9 Spring的数据库编程
    • 9.1 JdbcTemplate概述
    • 9.2 Spring JDBC的配置
    • 9.3 excute()方法
    • 9.4 update()方法
    • 9.5 query()方法
    • 9.6 事务管理的核心接口
    • 9.7 事务管理的方式
    • 9.8 基于XML方式的声明式事务
    • 9.9 基于注解方式的声明式事务
    • 9.10 案例:实现用户登录
    • 9.11 扩展阅读
    • 9.12 章节测试
  • 10 初识Spring MVC框架
    • 10.1 Spring MVC概述
    • 10.2 Spring MVC特点
    • 10.3 Spring MVC入门程序
    • 10.4 Spring MVC工作原理
    • 10.5 扩展阅读
    • 10.6 章节测试
  • 11 Spring MVC的核心类和注解
    • 11.1 DispatcherServlet类
    • 11.2 @Controller注解
    • 11.3 @RequestMapping注解的使用
    • 11.4 @RequestMapping注解的属性
    • 11.5 请求映射方式
    • 11.6 扩展阅读
    • 11.7 章节测试
  • 12 Spring MVC数据绑定和相应
    • 12.1 数据绑定
    • 12.2 默认类型数据绑定
    • 12.3 简单数据类型绑定
    • 12.4 POJO绑定
    • 12.5 自定义类型转换器
    • 12.6 数组绑定
    • 12.7 集合绑定
    • 12.8 复杂POJO绑定—属性为对象类型的数据绑定
    • 12.9 复杂POJO绑定—属性为List类型的数据绑定
    • 12.10 复杂POJO绑定—属性为Map类型的数据绑定
    • 12.11 JSON数据绑定
    • 12.12 返回值为void类型的页面跳转
    • 12.13 返回值为String类型的页面跳转—不携带数据
    • 12.14 返回值为String类型的页面跳转—携带数据
    • 12.15 返回值为ModelAndView类型的页面跳转
    • 12.16 普通字符串的回写
    • 12.17 JSON数据的回写—对象数据转换成JSON数据后的回写
    • 12.18 JSON数据的回写—集合数据转换成JSON数据后的回写
    • 12.19 扩展阅读
    • 12.20 章节测试
  • 13 Spring MVC的高级功能
    • 13.1 简单异常处理器
    • 13.2 自定义异常处理器
    • 13.3 异常处理注解
    • 13.4 拦截器概述
    • 13.5 拦截器的配置
    • 13.6 拦截器的执行流程—单个拦截器
    • 13.7 拦截器的执行流程—多个拦截器
    • 13.8 案例:后台系统登录验证
    • 13.9 文件上传
    • 13.10 文件下载
    • 13.11 案例:文件上传和下载
    • 13.12 扩展阅读
    • 13.13 章节测试
  • 14 SSM框架整合
    • 14.1 常用方式整合思路
    • 14.2 项目基础结构搭建
    • 14.3 Spring和MyBatis整合
    • 14.4 Spring和Spring MVC整合
    • 14.5 纯注解方式整合思路
    • 14.6 纯注解SSM框架整合
    • 14.7 扩展阅读
    • 14.8 章节测试
  • 15 云借阅图书管理系统
    • 15.1 系统概述
    • 15.2 数据库设计
    • 15.3 系统环境搭建
    • 15.4 用户登录
    • 15.5 实现登录验证
    • 15.6 注销登录
    • 15.7 新书推荐
    • 15.8 图书借阅
    • 15.9 当前借阅
    • 15.10 借阅记录
    • 15.11 访问权限控制
    • 15.12 扩展阅读
    • 15.13 章节测试
扩展阅读

一、对AOP的初印象

在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方

式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个

热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑

的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高

了开发的效率。

二、AOP中的相关概念

Aspect(切面): Aspect 声明类似于 Java 中的类声明,在 Aspect 中会包含着一些 Pointcut 以及相应的 Advice。

Joint point(连接点):表示在程序中明确定义的点,典型的包括方法调用,对类成员的访问以及异常处理程序块的执行等等,它自身还可以嵌套其它 joint point。

Pointcut(切点):表示一组 joint point,这些 joint point 或是通过逻辑关系组合起来,或是通过通配、正则表达式等方式集中起来,它定义了相应的 Advice 将要发生的地方。

Advice(增强):Advice 定义了在 Pointcut 里面定义的程序点具体要做的操作,它通过 before、after 和 around 来区别是在每个 joint point 之前、之后还是代替执行的代码。

Target(目标对象):织入 Advice 的目标对象.。

Weaving(织入):将 Aspect 和其他对象连接起来, 并创建 Adviced object 的过程

三、其他的一些内容

Advice 的类型

before advice, 在 join point 前被执行的 advice. 虽然 before advice 是在

 join point 前被执行, 但是它并不能够阻止 join point 的执行, 除非发生了异

常(即我们在 before advice 代码中, 不能人为地决定是否继续执行 join point

 中的代码)

after return advice, 在一个 join point 正常返回后执行的 advice

after throwing advice, 当一个 join point 抛出异常后执行的 advice

after(final) advice, 无论一个 join point 是正常退出还是发生了异常, 都会被

执行的 advice.

around advice, 在 join point 前和 joint point 退出后都执行的 advice. 这个

是最常用的 advice.

introduction,introduction可以为原有的对象增加新的属性和方法。