| 作者 |
| 陈学明 |
| 丛书名 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9787111658788 |
| 简要 |
| 系统介绍SSM整合开发,详解500多个知识点示例、1个完整的项目实战案例,即学即用。 |
| 简介 |
| 内容简介书籍计算机书籍 本书从实战入手,通过大量示例介绍了Spring+SpringMVC+MyBatis整合开发的相关内容,提升读者对框架的掌握度和理解度,从而实现对框架会用、用对及精用的目标。本书共18章,分为5篇。第1篇Spring核心框架,涵盖Spring概述、Spring IoC容器初探、Web项目环境搭建与项目创建、Spring IoC容器进阶、基于注解和代码的配置、Spring测试;第2篇Spring MVC框架,涵盖Spring Web MVC概述、数据类型转换、验证与异常处理,以及Spring MVC进阶和测试框架;第3篇数据技术,涵盖数据库与Java数据访问技术、MyBatis基本使用、MyBatis进阶、Spring数据访问与事务管理;第4篇SSM整合开发,涵盖SSM整合概述与SSM整合实例;第5篇高级开发技术,涵盖Spring AOP与MVC拦截器,以及Spring Security框架与多线程。本书适合具备Java基础的SSM初学者和进阶开发人员阅读,也适合Java Web开发工程师阅读;对于探究Spring及Spring Boot框架机制与原理的资深工程师也具有参考意义。 |
| 目录 |
| 前言 第1篇 Spring核心框架 第1章 Spring概述 2 1.1 Spring的由来与发展 2 1.1.1 Java简史 3 1.1.2 Spring编年简史 5 1.2 Spring的概念及理念 6 1.3 Spring框架体系结构 7 1.4 Spring生态圈 10 1.5 Spring资源与社区 12 1.6 Spring综述 13 第2章 Spring IoC容器初探 14 2.1 Spring IoC容器及相关概念 14 2.1.1 组件、框架和容器 14 2.1.2 JavaBean、POJO和EJB简介 16 2.1.3 IoC与DI简介 17 2.1.4 Spring与EJB简介 19 2.2 Spring容器初始化 20 2.2.1 BeanFactory与ApplicationContext 20 2.2.2 ApplicationContext初始化方式 21 2.2.3 Spring基于XML的配置文件结构 23 2.2.4 Bean的配置方式 24 2.2.5 哪些类需要配置成Bean 25 2.2.6 容器的关闭 25 2.2.7 Spring容器的定义 26 2.3 依赖注入与方式 26 2.3.1 构造函数注入 27 2.3.2 设置值注入 28 第3章 Web项目环境搭建与项目创建 30 3.1 环境与前置准备 30 3.1.1 JDK的下载与安装 30 3.1.2 Eclipse的下载与安装 32 3.1.3 Tomcat的下载与安装 33 3.1.4 MySQL的下载与安装 34 3.1.5 Maven的下载与安装 35 3.2 基于Maven和Eclipse建立项目 36 3.2.1 在Eclipse中创建Maven Web项目 37 3.2.2 将Maven创建的Web项目导入Eclipse中 38 3.2.3 Eclipse编译器和项目特性修改 39 3.3 Spring框架导入与项目 41 3.3.1 Spring核心包及相关依赖包的导入 41 3.3.2 项目结构及创建 42 3.4 简单的完整实例 43 第4章 Spring IoC容器进阶 46 4.1 Bean实例化的更多方式 46 4.1.1 静态内部类 46 4.1.2 静态工厂方法 47 4.1.3 实例工厂方法 47 4.2 Bean的配置属性 48 4.2.1 Bean的作用域配置 49 4.2.2 Bean初始化或销毁的生命周期回调 50 4.2.3 懒加载Bean 51 4.2.4 Bean定义的继承 52 4.3 依赖注入的配置 53 4.3.1 多个对象的依赖注入 53 4.3.2 简单类型的依赖注入 55 4.3.3 集合类型的依赖注入 58 4.3.4 内部Bean的依赖注入 59 4.3.5 Bean方法的替换 59 4.3.6 自动装配 60 4.4 特殊的依赖配置 61 4.4.1 depends-on前置依赖配置 61 4.4.2 方法注入—不同作用域Bean的依赖配置 62 4.4.3 循环依赖的解决 63 4.5 XML配置进阶 64 4.5.1 依赖注入配置的简写 64 4.5.2 多XML配置文件 64 4.6 容器与Bean扩展点 65 4.6.1 全局与容器生命周期回调 65 4.6.2 容器加载定义扩展—BeanFactoryPostProcessor 66 4.6.3 容器扩展点—BeanPostProcessor 68 4.6.4 Aware接口—获取容器资源 68 4.7 Spring IoC容器综述 70 第5章 基于注解和代码的配置 73 5.1 Java注解 73 5.1.1 Java基本注解 73 5.1.2 Java注解标准 75 5.2 Spring支持的注解类型与开启方式 76 5.2.1 Spring支持的注解类型 76 5.2.2 Spring注解功能的开启方式 77 5.3 Spring支持的Java标准注解 78 5.3.1 @PostConstruct和@PreDestroy 78 5.3.2 @Named—组件注解 78 5.3.3 @Resource—依赖注入注解 79 5.3.4 @Inject—依赖注入 79 5.4 Spring容器配置注解 80 5.4.1 @Required—依赖项检查 80 5.4.2 @Autowired—依赖对象的自动装配 81 5.4.3 @Component—组件注解 82 5.4.4 @Bean—方法层级的组件注解 85 5.5 自动装配的更多介绍 86 5.5.1 自动装配的required配置 86 5.5.2 自动装配的顺序和选择 86 5.5.3 自动装配的使用 89 5.6 基于Java代码的配置 89 5.6.1 @Configuration——配置类注解 90 5.6.2 Java代码配置的容器初始化 90 5.6.3 @ComponentScan—组件扫描注解 91 5.6.4 @Import—配置类导入注解 92 5.7 容器注解汇总 92 第6章 Spring测试 94 6.1 关于测试 94 6.1.1 单元测试 95 6.1.2 集成测试 97 6.1.3 测试的一些概念 97 6.2 Java测试框架 98 6.2.1 JUnit单元测试框架 98 6.2.2 JUnit批量测试 102 6.2.3 JUnit运行器 103 6.2.4 JUnit 4与JUnit 5的比较 104 6.2.5 TestNG简介及与JUnit的比较 105 6.3 基于Spring的测试 106 6.3.1 JUnit中加入Spring容器进行测试 106 6.3.2 Spring测试模块 108 6.3.3 Spring测试模块对单元测试的支持 109 6.3.4 Spring测试框架 111 6.4 Spring测试注解 116 6.4.1 Spring测试专用的注解 116 6.4.2 测试支持的标准注解 119 6.4.3 基于JUnit 4支持的注解 121 6.4.4 基于JUnit Jupiter(JUnit 5)支持的注解 123 6.5 测试框架注解汇总 125 第2篇 Spring MVC框架 第7章 Spring Web MVC概述 128 7.1 HTTP Web基础知识 128 7.1.1 HTML与HTTP 128 7.1.2 HTTP请求类型 129 7.1.3 MIME类型 129 7.1.4 状态码 130 7.2 Java Web开发 131 7.2.1 Servlet技术 131 7.2.2 JSP技术 138 7.2.3 MVC模式 141 7.3 Spring MVC介绍与实例 141 7.3.1 Spring MVC框架处理流程 142 7.3.2 Spring Web快速Demo实例 143 7.4 Spring MVC技术细节 146 7.4.1 DispatcherServlet—中央控制器 146 7.4.2 HandlerMapping—处理器映射器 148 7.4.3 HandlerAdapter—处理器适配器 150 7.4.4 视图与视图解析器 153 7.5 Spring MVC注解配置 155 7.5.1 组件与依赖注解 156 7.5.2 请求映射与参数注解 156 7.5.3 @ModelAttribute模型属性注解 160 7.6 基于代码配置的Spring MVC项目 162 7.6.1 Java代码进行Spring MVC的容器配置 162 7.6.2 Java代码替代web.xml文件的入口配置 163 7.7 MVC注解汇总 164 第8章 数据类型的转换、验证与异常处理 166 8.1 类型转换 166 8.1.1 属性编辑器:PropertyEditor 166 8.1.2 转换器服务:ConversionService 168 8.1.3 类型转换在容器中的使用 173 8.2 数据绑定 176 8.2.1 Bean封装器:BeanWrapper 176 8.2.2 数据绑定器:DataBinder与WebDataBinder 178 8.2.3 绑定器初始化注解:@InitBinder 180 8.2.4 HTTP消息转换器:HttpMessageConverter 181 8.3 数据验证 184 8.3.1 JavaBean标准校验 184 8.3.2 Spring核心容器的验证 186 8.3.3 Spring MVC容器的验证 188 8.3.4 验证器配置及增加自定义验证器 189 8.3.5 验证器使用层级及手动调用 191 8.4 Spring MVC异常处理 192 8.4.1 Controller类层级异常处理:@ExceptionHandler 192 8.4.2 全局的异常处理:@ControllerAdvice 193 8.4.3 XML配置异常处理 194 第9章 Spring MVC进阶 195 9.1 静态资源的放行 195 9.1.1 配置Servlet处理静态资源 196 9.1.2 配置放行动态资源 196 9.1.3 配置放行动态资源 197 9.2 父子容器 197 9.2.1 Spring的父子容器 197 9.2.2 Spring MVC的父子容器 200 9.2.3 Spring MVC父子容器的配置 202 9.3 Spring MVC与JSON 204 9.3.1 JSON介绍 204 9.3.2 Java对JSON的支持 206 9.3.3 Spring MVC使用JSON 210 9.4 Spring MVC与REST 214 9.4.1 REST的概念与应用 214 9.4.2 Spring MVC REST服务端:@RestController 218 9.4.3 Spring MVC REST客户端:RestTemplate 219 9.5 文件上传 223 9.5.1 多部分表单数据类型:multipart/form-data 223 9.5.2 Java文件上传功能实现方式 225 9.5.3 Spring MVC 文件上传功能的实现方式 228 9.5.4 Spring MVC文件上传最佳实践 231 9.6 国际化 233 9.6.1 Java国际化 233 9.6.2 Spring国际化 236 9.6.3 Spring MVC国际化 237 9.6.4 语言环境解析器:LocaleResolver 239 9.6.5 Spring MVC语言环境的动态修改 244 9.6.6 Spring MVC国际化的使用 245 第10章 Spring MVC测试框架 247 10.1 Spring MVC测试概述 247 10.1.1 Spring MVC的测试方式 247 10.1.2 Spring Web测试实例与测试的整体框架 248 10.2 模拟应用服务(MockMvc)及其构建器 251 10.2.1 独立测试MockMvc构建器:StandaloneMockMvcBuilder 251 10.2.2 集成测试MockMvc构建器:DefaultMockMvcBuilder 252 10.3 模拟请求构造器 254 10.3.1 模拟请求参数传递 255 10.3.2 模拟请求构造器的请求相关设置 257 10.4 结果操作 258 10.4.1 结果操作接口:ResultActions 259 10.4.2 结果匹配器接口:ResultMatcher 260 10.4.3 结果处理器:MockMvcResultHandlers 265 10.4.4 获取MvcResult后自定义验证 266 10.5 Spring MVC测试框架之其他 266 10.5.1 测试代码简写 267 10.5.2 独立测试的依赖处理 268 10.5.3 文件上传测试 268 第3篇 数据技术 第11章 数据库与Java数据访问技术 272 11.1 关系型数据库介绍 272 11.1.1 关系型数据库产品 272 11.1.2 关系型数据库及其对象 273 11.1.3 关系型数据库事务 274 11.1.4 SQL语言 276 11.2 MySQL数据库 276 11.2.1 MySQL数据类型 277 11.2.2 基于MySQL的基本SQL语句 279 11.2.3 MySQL高级对象与功能 281 11.3 Java数据访问基本技术 284 11.3.1 JDBC数据访问 284 11.3.2 Java数据库连接池 288 11.3.3 线程安全的数据库连接 293 11.4 ORM框架介绍 294 11.4.1 Java常见的ORM框架 294 11.4.2 Hibernate开发步骤与实例 295 11.5 JPA—Java持久层应用接口 298 11.5.1 JPA的主要内容 299 11.5.2 JPA的主要概念和类 301 11.5.3 JPA开发规范与步骤 303 11.5.4 JPA之Hibernate实现实例 303 11.5.5 JPA之Eclipse Link实现实例 305 第12章 MyBatis入门 310 12.1 MyBatis介绍与快速入门实例 310 12.1.1 MyBatis介绍 310 12.1.2 MyBatis快速入门实例 311 12.2 MyBatis核心接口和类 314 12.2.1 SqlSession(SQL会话接口) 315 12.2.2 SqlSessionFactory(SQL会话工厂接口) 316 12.2.3 SqlSessionFactoryBuilder(SQL会话工厂构建类) 316 12.2.4 Configuration(配置类) 317 12.3 MyBatis XML全局配置文件 318 12.3.1 配置文件的结构 318 12.3.2 环境配置 319 12.3.3 属性与属性文件配置 321 12.3.4 映射引用配置 322 12.3.5 MyBatis特性设置 323 12.4 XML映射文件配置 325 12.4.1 基本查询映射配置 326 12.4.2 嵌套映射 330 12.4.3 、和语句配置 336 12.4.4 可重用SQL代码段() 338 第13章 MyBatis进阶 339 13.1 MyBatis内部运作解密 339 13.1.1 SqlSessionFactory的构建和类型 340 13.1.2 会话工厂创建会话的流程 340 13.1.3 Mapper映射器接口的运作方式 341 13.1.4 SqlSession和Executor如何执行SQL语句 342 13.2 MyBatis全局配置进阶 343 13.2.1 类型处理器 343 13.2.2 类型别名 345 13.2.3 对象工厂 346 13.2.4 插件 346 13.2.5 数据库提供商配置 347 13.3 动态SQL 348 13.3.1 条件判断 和条件语句 348 13.3.2 多分支选择标签、和 349 13.3.3 循环标签 349 13.4 MyBatis日志 350 13.4.1 Commons Logging +Log4j2搭建MyBatis日志方案实例 351 13.4.2 日志开启层级 352 13.5 MyBatis缓存 353 13.5.1 一级缓存 354 13.5.2 二级缓存 356 13.5.3 缓存补充介绍 359 13.6 MyBatis其他 360 13.6.1 基于注解映射及SQL语句构造器 360 13.6.2 Oracle自增长主键解决:selectKey 361 13.6.3 使用C3P0连接池 363 第14章 Spring数据访问与事务管理 364 14.1 Spring JDBC模板类 364 14.1.1 JdbcTemplate的使用 364 14.1.2 JdbcTemplate使用连接池数据源 366 14.2 Spring DAO支持 368 14.2.1 DAO的概念 368 14.2.2 基于JdbcTemplate的DAO层实例 369 14.2.3 Spring DAO支持类:DaoSupport 371 14.3 Spring整合ORM框架及JPA 372 14.3.1 Spring与Hibernate的整合概览 373 14.3.2 Spring与JPA的整合概览 374 14.4 Spring事务处理 375 14.4.1 Java事务处理 375 14.4.2 Spring事务管理 377 14.4.3 基于数据源事务管理器的编程式事务 380 14.4.4 基于数据源事务管理器的声明式事务 385 14.4.5 Spring MVC事务处理其他 390 第4篇 SSM整合开发 第15章 SSM整合概述 396 15.1 SSM整合综述 396 15.1.1 开发架构选择 396 15.1.2 SSM整合技术选型与导入 398 15.1.3 集成开发平台与开发工具 403 15.1.4 配置开发与注解开发 409 15.2 Spring与Spring MVC整合 410 15.2.1 配置Spring MVC父子容器 410 15.2.2 核心容器配置application.xml 411 15.2.3 Spring MVC容器配置spring-mvc.xml 412 15.3 Spring与MyBatis整合 414 15.3.1 整合的主要组件类 414 15.3.2 SSM整合方式 415 15.3.3 映射器配置 417 15.3.4 Spring与MyBatis整合事务管理 418 15.4 SSM异常整合与处理 421 15.4.1 Spring MVC异常处理的接口和类 422 15.4.2 Spring MVC异常处理器配置 425 15.4.3 JSON类型返回的异常处理器 428 15.5 Java日志与SSM日志整合 430 15.5.1 Log4j和Log4j2 430 15.5.2 Log4j2使用介绍 433 15.5.3 Log4j与JCL整合 436 15.5.4 SSM日志整合 438 第16章 SSM整合实例 442 16.1 项目需求、系统架构与系统设计 442 16.1.1 项目需求 442 16.1.2 系统架构 443 16.1.3 系统设计 446 16.2 项目框架搭建(SSM+Ext JS) 447 16.2.1 Eclipse+Maven创建多模块项目 447 16.2.2 后端项目(daport-backend)依赖和配置 455 16.2.3 前端项目(daport-front)搭建 464 16.2.4 前后端整合思路及开发方式 468 16.3 daport-backend后端开发 471 16.3.1 使用ERMaster设计表并产生SQL 471 16.3.2 MyBatis Generator产生实体类、映射接口及映射配置文件 473 16.3.3 用户请求服务与开发 474 16.4 daport-frontend前端开发 478 16.4.1 前端项目 478 16.4.2 主页面开发 478 16.4.3 用户管理页面开发 482 16.5 前后端整合开发 486 16.5.1 系统登录 486 16.5.2 国际化 488 16.5.3 用户管理前后端的整合 490 16.5.4 文件上传 491 16.5.5 统一异常处理 493 16.6 测试、调试与部署 494 16.6.1 后端daport-backend代码测试 494 16.6.2 后端daport-backend调试 496 16.6.3 前端daport-frontend调试 498 第5篇 高级开发技术 第17章 Spring AOP与MVC拦截器 502 17.1 AOP介绍及Java代理 502 17.1.1 AOP的应用场景及基本概念 503 17.1.2 Java代理实现 504 17.1.3 CGLIB动态代理库 507 17.2 Java AOP框架—AspectJ 509 17.2.1 使用Eclipse AJDT开发AspectJ实例 509 17.2.2 AspectJ切点执行表达式 510 17.2.3 AspectJ注解开发 511 17.3 Spring AOP框架解密 512 17.3.1 Spring AOP框架及代理实现 512 17.3.2 代理工厂Bean:ProxyFactoryBean 515 17.3.3 增强器:Advisor 517 17.3.4 基于XML的AOP配置 520 17.3.5 基于注解的AOP配置 522 17.3.6 Spring AOP与AspectJ的关系 524 17.4 MVC拦截器与过滤器 524 17.4.1 Spring MVC拦截器 524 17.4.2 Servlet 过滤器与Spring实现的过滤器 526 17.4.3 过滤器与拦截器的关系 529 第18章 Spring Security框架与多线程 531 18.1 Spring Security概述与Web请求认证 531 18.1.1 Spring Security快速入门示例 531 18.1.2 Spring Security用户认证配置标签 534 18.1.3 Spring Security密码加密 537 18.2 Spring Security方法层级授权 538 18.2.1 单个Bean方法保护的配置 538 18.2.2 方法的安全注解 539 18.2.3 全局安全切点配置 541 18.3 Spring Security机制解密 541 18.3.1 Spring Security实现机制 541 18.3.2 AuthenticationManager(认证管理器)核心接口及运作原理 542 18.3.3 AccessDecisionManager(访问决策管理器) 544 18.3.4 SecurityMetadataSource(安全元数据源) 545 18.3.5 SecurityInterceptor(安全拦截器) 546 18.4 Spring Security代码配置与测试 548 18.4.1 Spring Security基于代码配置 549 18.4.2 Spring Security单元测试 551 18.5 Spring Security实战 554 18.5.1 自定义登录页面 554 18.5.2 常见错误及解决方法 555 18.6 多线程与线程安全 556 18.6.1 Java线程创建与执行 557 18.6.2 Java线程安全问题 558 18.6.3 共享变量的线程安全解决方式 559 18.6.4 ThreadLocal解决线程安全 561 18.6.5 Spring中ThreadLocal的使用 563 |