Java EE实战精粹 MyBatis+Spring+Spring MVC
第 1章 MyBatis 3核心技术之技能 1
1.1 什么是框架 1
1.2 什么是对象关系映射 1
1.3 MyBatis的优势 2
1.4 ORM的原理实现 3
1.4.1 使用JDBC和反射技术实现泛型DAO 3
1.4.2 操作XML文件 8
1.5 准备MyBatis的开发环境 15
1.5.1 下载Eclipse 15
1.5.2 下载MyBatis 15
查看完整
1.1 什么是框架 1
1.2 什么是对象关系映射 1
1.3 MyBatis的优势 2
1.4 ORM的原理实现 3
1.4.1 使用JDBC和反射技术实现泛型DAO 3
1.4.2 操作XML文件 8
1.5 准备MyBatis的开发环境 15
1.5.1 下载Eclipse 15
1.5.2 下载MyBatis 15
查看完整
某世界500强企业高级项目经理,10余年项目管理与开发经验,对多线程和并发,Android移动开发,智能报表,分布式处理等企业级架构技术深耕多年,深谙Java技术开发难点与要点,拥有良好的技术素养和丰富的实践经验,一直在持续关注架构的优化和重构领域,喜欢技术与教育相结合的方式共享知识,以共同提高,生活中喜欢摄影,对旅游、航模兴趣浓厚。著有《Java多线程编程核心技术》《Java并发编程:核心方法与框架》《Java EE核心框架实战 第2版》《NIO与Socket编程技术指南》等书籍。
本书主要讲解Java EE框架MyBatis、Spring和Spring MVC的核心开发技术,帮助读者进行“精要”式的学习和项目实战,同时汲取Java EE的思想,并*终将其灵活运用到实际工作中。 全书内容共7章,分别对MyBatis、Spring和Spring MVC的基础知识与核心技术实现进行了详细的描述。书中利用大量篇幅介绍了Spring中的DI与AOP,这两种技术是Spring框架的内部原理,掌握它们是学习Spring的重中之重。另外,本书还系统解析了MyBatis Spring Spring MVC框架的整合,并介绍了如何使用Spring Boot开发Web软件项目。 本书适用于已具有一定Java编程基础的读者,包括具有Servlet编程经验,以及在Java平台下进行各类软件开发的开发人员、测试人员等。
第 1章 MyBatis 3核心技术之技能 1
1.1 什么是框架 1
1.2 什么是对象关系映射 1
1.3 MyBatis的优势 2
1.4 ORM的原理实现 3
1.4.1 使用JDBC和反射技术实现泛型DAO 3
1.4.2 操作XML文件 8
1.5 准备MyBatis的开发环境 15
1.5.1 下载Eclipse 15
1.5.2 下载MyBatis 15
1.5.3 在Eclipse中创建Library库 17
1.5.4 创建Java项目并引用Library库 19
1.6 创建SqlSessionFactory和SqlSession对象 20
1.6.1 XML配置文件模板 20
1.6.2 使用XML配置文件创建SqlSessionFactory对象 21
1.6.3 创建SqlSession对象 23
1.6.4 SqlSessionFactoryBuilder和SqlSessionFactory的API 24
1.7 在Eclipse中安装MyBatis Generator插件 25
1.8 使用MyBatis Generator工具逆向的代码操作Oracle数据库 28
1.8.1 进行逆向操作 28
1.8.2 操作数据库 30
1.9 使用MyBatis Generator工具逆向的代码操作MySQL数据库 33
1.9.1 进行逆向操作 33
1.9.2 操作数据库 35
1.10 自建环境使用SqlSession操作Oracle和MySQL数据库 36
1.10.1 针对Oracle的CURD 36
1.10.2 针对MySQL的CURD 41
1.10.3 向SQL映射传入参数类型 44
1.10.4 从SQL映射取得返回值类型 49
1.10.5 SQL映射文件中命名空间的作用 52
1.11 自建环境使用Mapper接口操作Oracle和MySQL数据库 53
1.11.1 接口-SQL映射的对应关系 54
1.11.2 针对Oracle的CURD 55
1.11.3 针对MySQL的CURD 59
1.11.4 向Mapper接口传入参数类型 62
1.11.5 从SQL映射取得返回值类型 70
1.12 MyBatis核心对象的生命周期与封装 74
1.12.1 创建GetSqlSessionFactory类 75
1.12.2 创建GetSqlSession类 76
1.12.3 创建SQL映射接口 76
1.12.4 创建SQL映射文件 76
1.12.5 测试多次获取的SqlSession对象是否为同一个 77
1.12.6 添加记录及异常回滚的测试 78
第 2章 MyBatis 3核心技术之实战技能 80
2.1 结合Log4j实现输出日志 80
2.1.1 结合Log4j 1实现输出日志 80
2.1.2 结合Log4j 2实现输出日志 82
2.2 SQL语句中特殊符号的处理 83
2.3 使用typeAliases配置别名 84
2.3.1 系统预定义别名 84
2.3.2 使用单独配置自定义别名 86
2.3.3 使用批量配置自定义别名 87
2.3.4 别名重复的解决办法 88
2.4 使用properties保存数据库信息 89
2.4.1 使用配置内部属性值 89
2.4.2 使用引用外部properties属性文件中的配置 90
2.4.3 使用程序代码读取properties文件中的参数 90
2.4.4 数据库密码加/解密 91
2.5 配置多个连接数据库环境 93
2.5.1 实现多个连接数据库环境 93
2.5.2 多个连接数据库环境与数据库加/解密 94
2.6 使用数据源 95
2.6.1 DataSource接口介绍 95
2.6.2 JNDI介绍 96
2.6.3 DataSource与JNDI的关系 97
2.6.4 使用JNDI接口操作JNDI Tree上的数据 98
2.6.5 在JNDI树中先获得DataSource再获得Connection 100
2.6.6 在MyBatis中从JNDI获得DataSource 102
2.6.7 在MyBatis中使用第三方的HikariCP连接池 102
2.7 不同数据库执行不同SQL语句的支持 104
2.7.1 使用实现执行不同的SQL语句 105
2.7.2 在SQL映射的id值相同的情况下有无databaseId的优先级判断 106
2.8 获取Mapper的多种方式 107
2.9 中type为JDBC和MANAGED时的区别 108
2.10 动态SQL 110
2.10.1 标签的基本使用 110
2.10.2 标签与有参构造方法 112
2.10.3 使用 ${} 拼接SQL语句 113
2.10.4 标签 114
2.10.5 插入null值的第 1种方法——JdbcType 118
2.10.6 插入null值的第 2种方法—— 119
2.10.7 标签 120
2.10.8 标签的使用 121
2.10.9 标签的使用 122
2.10.10 标签的使用 123
2.10.11 使用执行批量插入 125
2.10.12 使用标签对like语句进行适配 127
2.10.13 使用标签规范SQL语句 129
2.11 读写CLOB类型的数据 131
2.12 处理分页 133
2.12.1 使用SqlSession对象对查询的数据进行分页 134
2.12.2 使用Mapper接口对查询的数据进行分页 134
2.13 实现批处理 135
2.14 实现一对一级联 136
2.14.1 数据表结构和内容以及关系 136
2.14.2 创建实体类 137
2.14.3 创建SQL映射文件 137
2.14.4 级联解析 138
2.14.5 根据ID查询记录 138
2.14.6 查询所有记录 139
2.14.7 对SQL语句执行次数进行优化 140
2.15 实现一对多级联 141
2.15.1 数据表的结构、内容以及关系 141
2.15.2 创建实体类 142
2.15.3 创建SQL映射文件 142
2.15.4 级联解析 143
2.15.5 根据ID查询记录 143
2.15.6 查询所有记录 144
2.15.7 对SQL语句的执行次数进行优化 145
2.16 延迟加载 146
2.16.1 默认立即加载策略 147
2.16.2 使用全局延迟加载策略与两种加载方式 148
2.16.3 使用fetchType属性设置局部加载策略 150
2.17 缓存的使用 150
2.17.1 一级缓存 151
2.17.2 二级缓存 152
2.17.3 验证update语句具有清除二级缓存的特性 154
第3章 Spring 5核心技术之IoC 156
3.1 Spring框架简介 156
3.2 Spring框架的模块组成 157
3.3 IoC和DI 157
3.4 IoC容器 158
3.5 面向切面编程 158
3.6 初步体会IoC的优势 159
3.7 在Spring中创建JavaBean 164
3.7.1 使用XML声明法创建对象 164
3.7.2 使用Annotation注解法创建对象 172
3.7.3 处理JavaBean的生命周期 183
3.8 装配Spring Bean 189
3.8.1 使用XML声明法注入对象 189
3.8.2 使用注解声明法注入对象 191
3.8.3 多实现类的歧义性 192
3.8.4 使用 @Autowired注解向构造方法进行注入 194
3.8.5 使用 @Autowired注解向set方法进行注入 195
3.8.6 使用 @Autowired注解向Field进行注入 195
3.8.7 使用 @Inject向Field-setMethod-Constructor进行注入 196
3.8.8 向 @Bean工厂方法注入参数 196
3.8.9 使用 @Autowired (required = false) 的写法 197
3.8.10 使用 @Bean为JavaBean的id重命名 198
3.8.11 为构造方法进行注入 199
3.8.12 使用p命名空间对属性值进行注入 212
3.8.13 Spring上下文环境的相关知识 215
3.8.14 BeanFactory与ApplicationContext 221
3.8.15 注入null类型 222
3.8.16 注入Properties类型 222
3.8.17 在Spring中注入外部属性文件的属性值 223
3.8.18 在IoC容器中创建单例和多例的对象—— XML配置文件法 225
3.8.19 在IoC容器中创建单例和多例的对象—— 注解法 226
3.8.20 父子容器 226
3.8.21 注入特殊字符 229
3.8.22 使用@Value注解进行注入 229
第4章 Spring 5核心技术之AOP 232
4.1 AOP的使用 232
4.1.1 AOP的原理之代理设计模式 232
4.1.2 与AOP相关的基本概念 240
4.1.3 AOP核心案例 245
4.2 MyBatis 3和Spring 5的整合 280
第5章 Spring 5 MVC实战技术 284
5.1 MVC、软件框架与Spring 5 MVC介绍 284
5.2 Spring 5 MVC核心控制器 285
5.3 核心技术 285
5.3.1 执行控制层:无参数传递 286
5.3.2 执行控制层:有参数传递 287
5.3.3 执行控制层:有参数传递简化版 287
5.3.4 实现登录功能 288
5.3.5 将URL参数封装成实体类 290
5.3.6 限制提交method的方式 291
5.3.7 控制层方法的参数类型 291
5.3.8 控制层方法的返回值类型 293
5.3.9 取得request、response和session对象 293
5.3.10 登录失败后显示错误信息 294
5.3.11 向控制层注入Service业务逻辑层 295
5.3.12 重定向:无参数传递 296
5.3.13 重定向:有参数传递 297
5.3.14 重定向传递参数:RedirectAttributes.addAttribute() 方法 298
5.3.15 重定向传递参数:RedirectAttributes.addFlashAttribute() 方法 299
5.3.16 解决转发到*.html文件的404异常 300
5.3.17 使用fastjson在服务端解析JSON字符串 301
5.3.18 使用jackson在服务端将JSON字符串转换成各种Java数据类型 302
5.3.19 在控制层返回JSON对象示例 306
5.3.20 在控制层返回JSON字符串示例 307
5.3.21 使用HttpServletResopnse对象输出响应字符 309
5.3.22 单文件上传1:使用MultipartHttpServletRequest 310
5.3.23 单文件上传2:使用MultipartFile 311
5.3.24 单文件上传3:使用MultipartFile结合实体类 312
5.3.25 多文件上传1:使用MultipartHttpServletRequest 312
5.3.26 多文件上传2:使用MultipartFile[] 313
5.3.27 多文件上传3:使用MultipartFile[]结合实体类 315
5.3.28 支持文件名为中文的文件的下载 316
5.4 扩展技术 317
5.4.1 使用InternalResourceViewResolver简化返回的视图名称 317
5.4.2 控制层返回List对象及实体的效果 317
5.4.3 实现国际化 321
5.4.4 处理异常 328
5.4.5 配置文件的不同使用方式 338
5.4.6 方法参数是Model数据类型 339
5.4.7 方法参数是ModelMap数据类型 340
5.4.8 方法返回值是ModelMap数据类型 341
5.4.9 方法返回值是ModelAndView数据类型 342
5.4.10 方法返回值是ModelAndView实现重定向 343
5.4.11 使用 @RequestAttribute和 @SessionAttribute注解 344
5.4.12 使用 @CookieValue和 @RequestHeader注解 344
5.4.13 使用 @SessionAttributes注解 345
5.4.14 使用 @ModelAttribute注解 348
5.4.15 在路径中添加通配符的功能 354
5.4.16 控制层返回void数据的情况 355
5.4.17 解决多人开发路径可能重复的问题 356
5.4.18 @PathVariable注解的使用 358
5.4.19 通过URL参数访问指定的业务方法 359
5.4.20 @RestController注解的使用 360
5.4.21 @GetMapping、@PostMapping、@PutMapping和@DeleteMapping注解的使用 361
5.4.22 Spring 5 MVC与Spring 5的整合及应用AOP切面 365
第6章 MyBatis 3、Spring 5和Spring 5 MVC的整合 368
6.1 准备MyBatis 3、Spring 5和Spring 5 MVC框架的JAR包文件 368
6.2 准备MyBatis 3与Spring 5整合的插件 368
6.3 创建Web项目 368
6.4 配置web.xml文件 368
6.5 配置springMVC-servlet.xml文件 369
6.6 MyBatis配置文件 369
6.7 创建MyBatis映射的相关文件 369
6.8 配置applicationContext.xml文件 370
6.9 创建Service对象 372
6.10 创建Controller对象 372
6.11 测试正常的效果 373
6.12 测试回滚的效果 373
第7章 前沿技术Spring Boot 374
7.1 搭建Maven开发环境 374
7.1.1 Maven介绍 374
7.1.2 搭建Maven环境 375
7.1.3 在Eclipse中关联Maven 377
7.1.4 创建Maven项目 379
7.1.5 使用Maven工具下载Spring框架(JAR包、源代码和帮助文档)381
7.1.6 向仓库中添加自定义的JAR包 384
7.1.7 查看依赖关系 384
7.2 使用Thymeleaf模板引擎 385
7.2.1 常见的使用方式 385
7.2.2 实现循环 392
7.2.3 实现国际化与转义 396
7.2.4 处理链接 398
7.2.5 实现if处理 399
7.2.6 实现比较 400
7.2.7 处理属性值 401
7.3 使用Spring Boot开发Web项目 402
7.3.1 创建Maven Web Project 402
7.3.2 更改错误的Maven Web Project环境 404
7.3.3 常用Starter的介绍 407
7.3.4 创建控制层 409
7.3.5 添加JSTL依赖 410
7.3.6 创建JSP视图文件 410
7.3.7 创建启动类Application 411
7.3.8 运行Application类 411
7.3.9 执行test2的URL 412
7.3.10 执行test1的URL 412
7.3.11 添加JSP依赖 412
7.3.12 实现项目首页 413
7.3.13 在CMD中启动项目 413
7.3.14 创建可执行JAR 414
7.3.15 实现注入IoC 415
7.3.16 实现切面AOP 416
7.3.17 官方建议的项目结构 417
7.3.18 实现Spring Boot整合Thymeleaf模板 417
7.3.19 使用自定义的Thymeleaf模板显示异常信息 419
7.3.20 实现Spring Boot整合MyBatis框架 423
7.3.21 整合 @WebFilter和 @WebListener资源 428
^ 收 起
1.1 什么是框架 1
1.2 什么是对象关系映射 1
1.3 MyBatis的优势 2
1.4 ORM的原理实现 3
1.4.1 使用JDBC和反射技术实现泛型DAO 3
1.4.2 操作XML文件 8
1.5 准备MyBatis的开发环境 15
1.5.1 下载Eclipse 15
1.5.2 下载MyBatis 15
1.5.3 在Eclipse中创建Library库 17
1.5.4 创建Java项目并引用Library库 19
1.6 创建SqlSessionFactory和SqlSession对象 20
1.6.1 XML配置文件模板 20
1.6.2 使用XML配置文件创建SqlSessionFactory对象 21
1.6.3 创建SqlSession对象 23
1.6.4 SqlSessionFactoryBuilder和SqlSessionFactory的API 24
1.7 在Eclipse中安装MyBatis Generator插件 25
1.8 使用MyBatis Generator工具逆向的代码操作Oracle数据库 28
1.8.1 进行逆向操作 28
1.8.2 操作数据库 30
1.9 使用MyBatis Generator工具逆向的代码操作MySQL数据库 33
1.9.1 进行逆向操作 33
1.9.2 操作数据库 35
1.10 自建环境使用SqlSession操作Oracle和MySQL数据库 36
1.10.1 针对Oracle的CURD 36
1.10.2 针对MySQL的CURD 41
1.10.3 向SQL映射传入参数类型 44
1.10.4 从SQL映射取得返回值类型 49
1.10.5 SQL映射文件中命名空间的作用 52
1.11 自建环境使用Mapper接口操作Oracle和MySQL数据库 53
1.11.1 接口-SQL映射的对应关系 54
1.11.2 针对Oracle的CURD 55
1.11.3 针对MySQL的CURD 59
1.11.4 向Mapper接口传入参数类型 62
1.11.5 从SQL映射取得返回值类型 70
1.12 MyBatis核心对象的生命周期与封装 74
1.12.1 创建GetSqlSessionFactory类 75
1.12.2 创建GetSqlSession类 76
1.12.3 创建SQL映射接口 76
1.12.4 创建SQL映射文件 76
1.12.5 测试多次获取的SqlSession对象是否为同一个 77
1.12.6 添加记录及异常回滚的测试 78
第 2章 MyBatis 3核心技术之实战技能 80
2.1 结合Log4j实现输出日志 80
2.1.1 结合Log4j 1实现输出日志 80
2.1.2 结合Log4j 2实现输出日志 82
2.2 SQL语句中特殊符号的处理 83
2.3 使用typeAliases配置别名 84
2.3.1 系统预定义别名 84
2.3.2 使用单独配置自定义别名 86
2.3.3 使用批量配置自定义别名 87
2.3.4 别名重复的解决办法 88
2.4 使用properties保存数据库信息 89
2.4.1 使用配置内部属性值 89
2.4.2 使用引用外部properties属性文件中的配置 90
2.4.3 使用程序代码读取properties文件中的参数 90
2.4.4 数据库密码加/解密 91
2.5 配置多个连接数据库环境 93
2.5.1 实现多个连接数据库环境 93
2.5.2 多个连接数据库环境与数据库加/解密 94
2.6 使用数据源 95
2.6.1 DataSource接口介绍 95
2.6.2 JNDI介绍 96
2.6.3 DataSource与JNDI的关系 97
2.6.4 使用JNDI接口操作JNDI Tree上的数据 98
2.6.5 在JNDI树中先获得DataSource再获得Connection 100
2.6.6 在MyBatis中从JNDI获得DataSource 102
2.6.7 在MyBatis中使用第三方的HikariCP连接池 102
2.7 不同数据库执行不同SQL语句的支持 104
2.7.1 使用实现执行不同的SQL语句 105
2.7.2 在SQL映射的id值相同的情况下有无databaseId的优先级判断 106
2.8 获取Mapper的多种方式 107
2.9 中type为JDBC和MANAGED时的区别 108
2.10 动态SQL 110
2.10.1 标签的基本使用 110
2.10.2 标签与有参构造方法 112
2.10.3 使用 ${} 拼接SQL语句 113
2.10.4 标签 114
2.10.5 插入null值的第 1种方法——JdbcType 118
2.10.6 插入null值的第 2种方法—— 119
2.10.7 标签 120
2.10.8 标签的使用 121
2.10.9 标签的使用 122
2.10.10 标签的使用 123
2.10.11 使用执行批量插入 125
2.10.12 使用标签对like语句进行适配 127
2.10.13 使用标签规范SQL语句 129
2.11 读写CLOB类型的数据 131
2.12 处理分页 133
2.12.1 使用SqlSession对象对查询的数据进行分页 134
2.12.2 使用Mapper接口对查询的数据进行分页 134
2.13 实现批处理 135
2.14 实现一对一级联 136
2.14.1 数据表结构和内容以及关系 136
2.14.2 创建实体类 137
2.14.3 创建SQL映射文件 137
2.14.4 级联解析 138
2.14.5 根据ID查询记录 138
2.14.6 查询所有记录 139
2.14.7 对SQL语句执行次数进行优化 140
2.15 实现一对多级联 141
2.15.1 数据表的结构、内容以及关系 141
2.15.2 创建实体类 142
2.15.3 创建SQL映射文件 142
2.15.4 级联解析 143
2.15.5 根据ID查询记录 143
2.15.6 查询所有记录 144
2.15.7 对SQL语句的执行次数进行优化 145
2.16 延迟加载 146
2.16.1 默认立即加载策略 147
2.16.2 使用全局延迟加载策略与两种加载方式 148
2.16.3 使用fetchType属性设置局部加载策略 150
2.17 缓存的使用 150
2.17.1 一级缓存 151
2.17.2 二级缓存 152
2.17.3 验证update语句具有清除二级缓存的特性 154
第3章 Spring 5核心技术之IoC 156
3.1 Spring框架简介 156
3.2 Spring框架的模块组成 157
3.3 IoC和DI 157
3.4 IoC容器 158
3.5 面向切面编程 158
3.6 初步体会IoC的优势 159
3.7 在Spring中创建JavaBean 164
3.7.1 使用XML声明法创建对象 164
3.7.2 使用Annotation注解法创建对象 172
3.7.3 处理JavaBean的生命周期 183
3.8 装配Spring Bean 189
3.8.1 使用XML声明法注入对象 189
3.8.2 使用注解声明法注入对象 191
3.8.3 多实现类的歧义性 192
3.8.4 使用 @Autowired注解向构造方法进行注入 194
3.8.5 使用 @Autowired注解向set方法进行注入 195
3.8.6 使用 @Autowired注解向Field进行注入 195
3.8.7 使用 @Inject向Field-setMethod-Constructor进行注入 196
3.8.8 向 @Bean工厂方法注入参数 196
3.8.9 使用 @Autowired (required = false) 的写法 197
3.8.10 使用 @Bean为JavaBean的id重命名 198
3.8.11 为构造方法进行注入 199
3.8.12 使用p命名空间对属性值进行注入 212
3.8.13 Spring上下文环境的相关知识 215
3.8.14 BeanFactory与ApplicationContext 221
3.8.15 注入null类型 222
3.8.16 注入Properties类型 222
3.8.17 在Spring中注入外部属性文件的属性值 223
3.8.18 在IoC容器中创建单例和多例的对象—— XML配置文件法 225
3.8.19 在IoC容器中创建单例和多例的对象—— 注解法 226
3.8.20 父子容器 226
3.8.21 注入特殊字符 229
3.8.22 使用@Value注解进行注入 229
第4章 Spring 5核心技术之AOP 232
4.1 AOP的使用 232
4.1.1 AOP的原理之代理设计模式 232
4.1.2 与AOP相关的基本概念 240
4.1.3 AOP核心案例 245
4.2 MyBatis 3和Spring 5的整合 280
第5章 Spring 5 MVC实战技术 284
5.1 MVC、软件框架与Spring 5 MVC介绍 284
5.2 Spring 5 MVC核心控制器 285
5.3 核心技术 285
5.3.1 执行控制层:无参数传递 286
5.3.2 执行控制层:有参数传递 287
5.3.3 执行控制层:有参数传递简化版 287
5.3.4 实现登录功能 288
5.3.5 将URL参数封装成实体类 290
5.3.6 限制提交method的方式 291
5.3.7 控制层方法的参数类型 291
5.3.8 控制层方法的返回值类型 293
5.3.9 取得request、response和session对象 293
5.3.10 登录失败后显示错误信息 294
5.3.11 向控制层注入Service业务逻辑层 295
5.3.12 重定向:无参数传递 296
5.3.13 重定向:有参数传递 297
5.3.14 重定向传递参数:RedirectAttributes.addAttribute() 方法 298
5.3.15 重定向传递参数:RedirectAttributes.addFlashAttribute() 方法 299
5.3.16 解决转发到*.html文件的404异常 300
5.3.17 使用fastjson在服务端解析JSON字符串 301
5.3.18 使用jackson在服务端将JSON字符串转换成各种Java数据类型 302
5.3.19 在控制层返回JSON对象示例 306
5.3.20 在控制层返回JSON字符串示例 307
5.3.21 使用HttpServletResopnse对象输出响应字符 309
5.3.22 单文件上传1:使用MultipartHttpServletRequest 310
5.3.23 单文件上传2:使用MultipartFile 311
5.3.24 单文件上传3:使用MultipartFile结合实体类 312
5.3.25 多文件上传1:使用MultipartHttpServletRequest 312
5.3.26 多文件上传2:使用MultipartFile[] 313
5.3.27 多文件上传3:使用MultipartFile[]结合实体类 315
5.3.28 支持文件名为中文的文件的下载 316
5.4 扩展技术 317
5.4.1 使用InternalResourceViewResolver简化返回的视图名称 317
5.4.2 控制层返回List对象及实体的效果 317
5.4.3 实现国际化 321
5.4.4 处理异常 328
5.4.5 配置文件的不同使用方式 338
5.4.6 方法参数是Model数据类型 339
5.4.7 方法参数是ModelMap数据类型 340
5.4.8 方法返回值是ModelMap数据类型 341
5.4.9 方法返回值是ModelAndView数据类型 342
5.4.10 方法返回值是ModelAndView实现重定向 343
5.4.11 使用 @RequestAttribute和 @SessionAttribute注解 344
5.4.12 使用 @CookieValue和 @RequestHeader注解 344
5.4.13 使用 @SessionAttributes注解 345
5.4.14 使用 @ModelAttribute注解 348
5.4.15 在路径中添加通配符的功能 354
5.4.16 控制层返回void数据的情况 355
5.4.17 解决多人开发路径可能重复的问题 356
5.4.18 @PathVariable注解的使用 358
5.4.19 通过URL参数访问指定的业务方法 359
5.4.20 @RestController注解的使用 360
5.4.21 @GetMapping、@PostMapping、@PutMapping和@DeleteMapping注解的使用 361
5.4.22 Spring 5 MVC与Spring 5的整合及应用AOP切面 365
第6章 MyBatis 3、Spring 5和Spring 5 MVC的整合 368
6.1 准备MyBatis 3、Spring 5和Spring 5 MVC框架的JAR包文件 368
6.2 准备MyBatis 3与Spring 5整合的插件 368
6.3 创建Web项目 368
6.4 配置web.xml文件 368
6.5 配置springMVC-servlet.xml文件 369
6.6 MyBatis配置文件 369
6.7 创建MyBatis映射的相关文件 369
6.8 配置applicationContext.xml文件 370
6.9 创建Service对象 372
6.10 创建Controller对象 372
6.11 测试正常的效果 373
6.12 测试回滚的效果 373
第7章 前沿技术Spring Boot 374
7.1 搭建Maven开发环境 374
7.1.1 Maven介绍 374
7.1.2 搭建Maven环境 375
7.1.3 在Eclipse中关联Maven 377
7.1.4 创建Maven项目 379
7.1.5 使用Maven工具下载Spring框架(JAR包、源代码和帮助文档)381
7.1.6 向仓库中添加自定义的JAR包 384
7.1.7 查看依赖关系 384
7.2 使用Thymeleaf模板引擎 385
7.2.1 常见的使用方式 385
7.2.2 实现循环 392
7.2.3 实现国际化与转义 396
7.2.4 处理链接 398
7.2.5 实现if处理 399
7.2.6 实现比较 400
7.2.7 处理属性值 401
7.3 使用Spring Boot开发Web项目 402
7.3.1 创建Maven Web Project 402
7.3.2 更改错误的Maven Web Project环境 404
7.3.3 常用Starter的介绍 407
7.3.4 创建控制层 409
7.3.5 添加JSTL依赖 410
7.3.6 创建JSP视图文件 410
7.3.7 创建启动类Application 411
7.3.8 运行Application类 411
7.3.9 执行test2的URL 412
7.3.10 执行test1的URL 412
7.3.11 添加JSP依赖 412
7.3.12 实现项目首页 413
7.3.13 在CMD中启动项目 413
7.3.14 创建可执行JAR 414
7.3.15 实现注入IoC 415
7.3.16 实现切面AOP 416
7.3.17 官方建议的项目结构 417
7.3.18 实现Spring Boot整合Thymeleaf模板 417
7.3.19 使用自定义的Thymeleaf模板显示异常信息 419
7.3.20 实现Spring Boot整合MyBatis框架 423
7.3.21 整合 @WebFilter和 @WebListener资源 428
^ 收 起
某世界500强企业高级项目经理,10余年项目管理与开发经验,对多线程和并发,Android移动开发,智能报表,分布式处理等企业级架构技术深耕多年,深谙Java技术开发难点与要点,拥有良好的技术素养和丰富的实践经验,一直在持续关注架构的优化和重构领域,喜欢技术与教育相结合的方式共享知识,以共同提高,生活中喜欢摄影,对旅游、航模兴趣浓厚。著有《Java多线程编程核心技术》《Java并发编程:核心方法与框架》《Java EE核心框架实战 第2版》《NIO与Socket编程技术指南》等书籍。
本书主要讲解Java EE框架MyBatis、Spring和Spring MVC的核心开发技术,帮助读者进行“精要”式的学习和项目实战,同时汲取Java EE的思想,并*终将其灵活运用到实际工作中。 全书内容共7章,分别对MyBatis、Spring和Spring MVC的基础知识与核心技术实现进行了详细的描述。书中利用大量篇幅介绍了Spring中的DI与AOP,这两种技术是Spring框架的内部原理,掌握它们是学习Spring的重中之重。另外,本书还系统解析了MyBatis Spring Spring MVC框架的整合,并介绍了如何使用Spring Boot开发Web软件项目。 本书适用于已具有一定Java编程基础的读者,包括具有Servlet编程经验,以及在Java平台下进行各类软件开发的开发人员、测试人员等。
比价列表
1人想要
公众号、微信群
缺书网
微信公众号
微信公众号
扫码进群
实时获取购书优惠
实时获取购书优惠