作者 |
杨开振 |
丛书名 |
出版社 |
电子工业出版社 |
ISBN |
9787121413995 |
简要 |
简介 |
内容简介书籍计算机书籍 随着移动互联网的兴起,以Java技术为后台的互联网技术占据了市场的主导地位。在Java互联网后台开发中,SSM框架(Spring Spring?MVC MyBatis)成为了主要架构,本书讲述了SSM框架从入门到实际工作的要求。与此同时,为了提高系统性能,NoSQL(尤其是Redis)在互联网系统中已经广泛应用用,为了适应这个变化,本书通过Spring讲解了有关Redis的技术应用。随着微服务的异军凸起,Spring微服务也成为时代的主流,本书也包括这方面的内容。本书主要分为7部分:第1部分对Java互联网的框架和主要涉及的模式做简单介绍;第2部分讲述MyBatis技术;第3部分讲述Spring基础(包括IoC、AOP和数据库应用),重点讲解Spring数据库事务应用,以满足互联网企业的应用要求;第4部分讲述Spring?MVC框架;第5部分通过Spring讲解Redis技术;第6部分讲解Spring微服务(Spring?Boot和Spring?Cloud);第7部分结合本书内容讲解Spring微服务实践。 |
目录 |
第1部分 入门和技术基础 第1章 Java EE基础 2 1.1 Java EE概述 2 1.1.1 Java EE容器 3 1.1.2 Java EE组件 3 1.2 开发环境简介 4 1.2.1 Tomcat简介 4 1.2.1 Maven 5 1.2.3 Web项目结构 6 1.2.4 Web项目发布包 7 1.3 Web容器的组件Servlet 7 1.3.1 Servlet入门实例 7 1.3.2 Servlet的生命周期 8 1.3.3 HttpServletRequest的应用 12 1.3.4 HttpServletResponse的应用 14 1.3.5 过滤器的使用 17 1.3.6 监听 20 1.3.7 Servlet容器初始化器 21 1.3.8 使用Cookie 23 1.3.9 提交表单 24 1.3.10 使用web.xml 26 第2章 认识SSM框架、Redis和微服务 28 2.1 Spring框架 28 2.1.1 Spring IoC简介 28 2.1.2 Spring AOP 30 2.2 MyBatis简介 31 2.2.1 Hibernate简介 32 2.2.2 MyBatis 34 2.2.3 Hibernate和MyBatis的区别 35 2.3 Spring MVC简介 36 2.4 流行的NoSQLRedis 36 2.5 SSM Redis结构框图及概述 37 2.6 Spring微服务 38 第3章 Java设计模式 40 3.1 Java反射技术 40 3.1.1 通过反射构建对象 40 3.1.2 反射方法 42 3.1.3 实例 42 3.2 动态代理模式和责任链模式 43 3.2.1 JDK动态代理 44 3.2.2 CGLIB动态代理 46 3.2.3 拦截器 48 3.2.4 责任链模式 51 3.3 观察者模式 54 3.3.1 概述 54 3.3.2 实例 55 3.4 普通工厂模式和抽象工厂模式 58 3.4.1 普通工厂模式 58 3.4.2 抽象工厂模式 59 3.5 建造者模式 61 3.5.1 概述 61 3.5.2 Builder模式实例 62 第2部分 互联网持久框架MyBatis 第4章 认识MyBatis核心组件 66 4.1 持久层的概念和MyBatis的特点 66 4.2 准备MyBatis环境 67 4.3 MyBatis的核心组件 69 4.4 SqlSessionFactory 70 4.4.1 使用XML配置文件构建SqlSessionFactory对象 70 4.4.2 使用代码构建SqlSessionFactory对象 72 4.5 SqlSession 72 4.6 映射器 73 4.6.1 用XML实现映射器 74 4.6.2 用注解实现映射器 75 4.6.3 用SqlSession发送SQL 76 4.6.4 用Mapper接口发送SQL 77 4.6.5 两种发送SQL的方式对比 77 4.7 生命周期 77 4.7.1 SqlSessionFactoryBuilder 77 4.7.2 SqlSessionFactory 78 4.7.3 SqlSession 78 4.7.4 Mapper 78 4.8 实例 79 第5章 MyBatis配置 85 5.1 概述 85 5.2 properties属性 86 5.2.1 property子元素 86 5.2.2 properties文件 87 5.2.3 程序代码传递 87 5.3 settings配置 88 5.4 typeAliases别名 90 5.4.1 系统定义别名 91 5.4.2 自定义别名 92 5.5 typeHandler类型转换器 93 5.5.1 系统定义的typeHandler 94 5.5.2 自定义typeHandler 98 5.5.3 枚举typeHandler 101 5.5.4 文件操作 105 5.6 对象工厂 106 5.7 插件 108 5.8 运行环境 108 5.8.1 事务管理器 109 5.8.2 数据源环境 111 5.9 databaseIdProvider 114 5.9.1 使用系统默认的databaseIdProvider 114 5.9.2 不使用系统规则 116 5.10 引入映射器的方法 118 第6章 映射器 120 6.1 概述 120 6.2 select元素查询语句 121 6.2.1 简单的select元素的应用 122 6.2.2 自动映射和驼峰映射 123 6.2.3 传递多个参数 124 6.2.4 使用resultMap映射结果集 127 6.2.5 分页参数RowBounds 127 6.3 insert元素插入语句 129 6.3.1 概述 129 6.3.2 简单的insert语句的应用 130 6.3.3 主键回填 130 6.3.4 自定义主键 131 6.4 update元素和delete元素 132 6.5 sql元素 132 6.6 参数 133 6.6.1 概述 133 6.6.2 存储过程参数支持 134 6.6.3 特殊字符串的替换和处理(#和$) 134 6.7 resultMap元素 134 6.7.1 resultMap元素的构成 135 6.7.2 使用Map存储结果集 136 6.7.3 使用POJO存储结果集 136 6.8 级联 137 6.8.1 MyBatis中的级联 137 6.8.2 建立POJO 140 6.8.3 配置映射文件 143 6.8.4 N 1问题 147 6.8.5 延迟加载 147 6.8.6 另一种级联 151 6.8.7 多对多级联 153 6.9 缓存 156 6.9.1 一级缓存和二级缓存 157 6.9.2 缓存配置项、自定义和引用 160 6.10 存储过程 161 6.10.1 IN和OUT参数存储过程 162 6.10.2 游标的使用 164 第7章 动态SQL 167 7.1 概述 167 7.2 if元素 167 7.3 choose、when和otherwise元素 168 7.4 trim、where和set元素 169 7.5 foreach元素 170 7.6 用test的属性判断字符串 171 7.7 bind元素 171 第8章 MyBatis的解析和运行原理 173 8.1 构建SqlSessionFactory过程 174 8.1.1 构建Configuration 175 8.1.2 构建映射器的内部组成 176 8.1.3 构建SqlSessionFactory 178 8.2 SqlSession运行过程 179 8.2.1 映射器的动态代理 179 8.2.2 SqlSession运行原理 183 第9章 插件 192 9.1 插件接口 192 9.2 插件的初始化 193 9.3 插件的代理和反射设计 194 9.4 常用的工具类MetaObject 197 9.5 插件开发过程和实例 198 9.5.1 确定需要拦截的签名 198 9.5.2 实现拦截方法 200 9.5.3 配置和运行 202 9.5.4 插件实例分页插件 203 第3部分 Spring基础 第10章 Spring IoC的概念 216 10.1 Spring概述 216 10.2 Spring IoC概述 218 10.2.1 主动创建对象 219 10.2.2 被动创建对象 220 10.2.3 Spring IoC阐述 222 10.3 Spring IoC容器 223 10.3.1 Spring IoC容器的设计 223 10.3.2 Spring IoC容器的初始化 227 10.3.3 Spring Bean的生命周期 228 第11章 装配Spring Bean 233 11.1 依赖注入和依赖查找 233 11.1.1 构造器注入 233 11.1.2 使用setter注入 234 11.1.3 依赖查找 235 11.2 装配Bean概述 236 11.3 通过XML配置装配Bean 237 11.3.1 装配简易值 237 11.3.2 装配集合 238 11.3.3 命名空间装配 241 11.4 通过注解装配Bean 243 11.4.1 使用注解@Component装配Bean 243 11.4.2 自动装配@Autowired 247 11.4.3 自动装配的歧义性(注解@Primary和注解@Qualifier) 248 11.4.4 装载带有参数的构造方法类 251 11.4.5 使用注解@Bean装配 252 11.4.6 注解自定义Bean的初始化和销毁方法 253 11.5 装配的混合使用 253 11.6 使用Profile 256 11.6.1 使用注解@Profile配置 256 11.6.2 使用XML定义Profile 257 11.6.3 启动Profile 258 11.7 加载属性文件 260 11.7.1 使用注解方式加载属性文件 261 11.7.2 使用XML方式加载属性文件 263 11.8 条件化装配Bean 264 11.9 Bean的作用域 265 11.10 使用Spring表达式 268 11.10.1 Spring EL相关的类 268 11.10.2 Bean的属性和方法 270 11.10.3 使用类的静态常量和方法 271 11.10.4 Spring EL运算 271 第12章 面向切面编程 273 12.1 一个简单的约定游戏 273 12.1.1 约定规则 273 12.1.2 读者的代码 275 12.1.3 笔者的代码 277 12.2 Spring AOP的基本概念 279 12.2.1 AOP的概念和使用原因 279 12.2.2 面向切面编程的术语 283 12.2.3 Spring对AOP的支持 285 12.3 使用注解@AspectJ开发Spring AOP 285 12.3.1 选择连接点 285 12.3.2 创建切面 286 12.3.3 切点 287 12.3.4 测试AOP 289 12.3.5 环绕通知 291 12.3.6 织入 293 12.3.7 向通知传递参数 294 12.3.8 引入 295 12.4 使用XML配置开发Spring AOP 297 12.4.1 各类通知 299 12.4.2 环绕通知 301 12.4.3 向通知传递参数 302 12.4.4 引入 302 12.5 经典Spring AOP应用程序 303 12.6 多个切面 305 第13章 Spring和数据库编程 311 13.1 传统的JDBC代码的弊端 311 13.2 配置数据库 313 13.2.1 使用简单数据库配置 313 13.2.2 使用第三方数据库连接池 314 13.2.3 使用JNDI数据库连接池 314 13.3 JDBC代码失控的解决方案JdbcTemplate 315 13.3.1 JdbcTemplate的增、删、查、改 316 13.3.2 执行多条SQL语句 317 13.3.3 JdbcTemplate的源码分析 319 13.4 MyBatis-Spring项目 320 13.4.1 配置SqlSessionFactoryBean 321 13.4.2 SqlSessionTemplate的配置 325 13.4.3 配置MapperFactoryBean 327 13.4.4 配置MapperScannerConfigurer 327 13.4.5 定制扫描 330 13.4.6 使用Java配置文件配置MyBatis-Spring项目 331 13.4.7 测试Spring MyBatis 333 第14章 深入Spring数据库事务管理 336 14.1 Spring数据库事务管理器的设计 336 14.1.1 配置事务管理器 339 14.1.2 用Java配置方式实现Spring数据库事务 340 14.2 编程式事务 342 14.3 声明式事务 342 14.3.1 @Transactional的配置项 343 14.3.2 使用XML配置事务管理器 344 14.3.3 事务定义器 345 14.3.4 声明式事务的约定流程 346 14.4 数据库的相关知识 348 14.4.1 数据库事务ACID特性 348 14.4.2 丢失更新 348 14.4.3 隔离级别 349 14.5 选择隔离级别和传播行为 352 14.5.1 选择隔离级别 352 <b |