编辑推荐
知名Java专家多年经验总结,介绍从程序员进阶到架构师需要具备的技能的完整教程基于Java官方API的解读,从架构师的独特角度讲解Java知识和技能企业级开发的经典示例,全程项目驱动,涵盖电商支付接口的综合调试程序员走向架构师是必经之路。本书基于Java官方API进行解读,从架构师的角度讲解Java知识和技能,并从搭建虚拟机开始,学习常用的Linux命令,力争使程序员能在较短的时间内成功迈入架构师的殿堂。近年来编程领域的知识愈加丰富,使广大程序员应接不暇。如何在有限的时间内高效学习是一个棘手的问题。本书作者根据自身的丰富经验,精选了Java中必须掌握的核心技能,并以项目为驱动,循序渐进,详细讲解了企业级项目和电商平台,让读者在学习知识的同时以实战加深印象,可谓是高屋建瓴。如何能在短时间内达到架构师的水平?面对难以入手的海量知识,读者往往一头雾水,相信通过阅读本书,每位读者都能从中找到答案。
内容简介
本书总结了作者多年来在Java Web方面的开发经验,全面阐述了Java架构师所需掌握的知识和技能,并围绕Java架构师这一主题介绍相关的内容。本书共12章。书中通过讲解企业管理系统、电商系统、报表系统等项目的实际开发流程,把流行的Struts、Spring、Hibernate、Spring MVC、MyBatis等框架整合起来,再从代码层面讲述Maven、WebService、POI等技术,让读者在学习Java架构师需要具备的专业技能的同时,了解项目开发的整个过程。在项目运维方面,本书还讲解了SonarQube和Jenkins开源组件,以拓宽架构师的知识广度。本书可以帮助不同技术层次的读者在短时间内掌握Java架构师需要具备的知识,缩短从程序员到架构师的进阶时间。因为书中的每份代码都有详细的注释和解析,很方便读者领会,所以不论是刚步入职场的新手,还是有一定工作经验的开发人员,本书都同样适用。
作者简介
王波软件架构师。曾就职于中软国际。从业多年,成功地开发过基于通信、电商、数据管理等相关业务的项目,在Java Web领域拥有丰富的经验。擅长搭建以Struts、Spring框架为基础的项目架构、并且在此基础上选择合适的ORM框架。在日常工作中,坚持认为程序员应该以全栈作为要求,以架构师作为目标,才可以更好地将客户的需求用计算机语言描述出来;认为在软件行业未来的发展中, Java Web领域的开发仍然会以MVC模式为主,并且在此基础上不断演化,开发过程则会更加依赖于框架,所以架构师会成为不可缺少的人才。
目录
- 第 1章 编程基础 1
- 1.1 程序员进阶 1
- 1.2 选择开发工具 3
- 1.3 安装JDK 5
- 1.4 安装Tomcat服务器 6
- 1.5 Hello World程序 8
- 1.6 小结 9
- 第 2章 需求调研 10
- 2.1 搭建关系 10
- 2.2 正式立项 11
- 2.3 需求调研 11
- 2.4 输出文档 12
- 2.5 技术选型 16
- 2.6 数据流图 16
- 2.7 UML建模 16
- 2.8 项目开工会 17
- 2.9 小结 18
- 第3章 项目开发 19
- 3.1 定义范围和WBS分解 19
- 3.2 企业管理系统框架搭建 20
- 3.3 Servlet方式开发 20
- 3.3.1 前端验证 22
- 3.3.2 后端验证 25
- 3.3.3 注册功能 28
- 3.3.4 综合调试 39
- 3.3.5 Servlet注解 43
- 3.4 不依赖框架的开发 45
- 3.4.1 销售数据导入报表 46
- 3.4.2 销售数据查询报表 53
- 3.5 月度版本 57
- 3.6 小结 57
- 第4章 项目部署 58
- 4.1 项目打包 58
- 4.2 项目发布 62
- 4.3 构建工具 63
- 4.3.1 Ant环境搭建 63
- 4.3.2 Ant经典实例 64
- 4.3.3 Maven环境搭建 66
- 4.3.4 Maven经典实例 66
- 4.4 部署工具 70
- 4.4.1 mstsc 71
- 4.4.2 VMware 71
- 4.4.3 Xmanager 75
- 4.4.4 WinSCP 79
- 4.4.5 JD-GUI 80
- 4.5 小结 81
- 第5章 编程环境 82
- 5.1 Linux系统介绍 82
- 5.2 Linux系统安装 83
- 5.3 Linux常用命令 84
- 5.3.1 基本命令 84
- 5.3.2 高级命令 90
- 5.3.3 部署命令 93
- 5.3.4 shell脚本入门 100
- 5.4 DOS介绍 101
- 5.4.1 基本命令 102
- 5.4.2 高级命令 104
- 5.5 SVN与Git版本控制 105
- 5.5.1 SVN常用操作 106
- 5.5.2 Git常用操作 110
- 5.6 Visio画图 114
- 5.7 Axure原型设计 115
- 5.8 代码编辑器 116
- 5.9 小结 119
- 第6章 架构师思想 120
- 6.1 数据类型 120
- 6.1.1 Object 121
- 6.1.2 byte和Byte 122
- 6.1.3 short和Short 122
- 6.1.4 int和Integer 122
- 6.1.5 long和Long 123
- 6.1.6 float和Float 123
- 6.1.7 char和Character 124
- 6.1.8 double和Double 124
- 6.1.9 boolean和Boolean 125
- 6.2 类与对象 125
- 6.2.1 三大特性 126
- 6.2.2 属性和方法 126
- 6.2.3 抽象类和接口 128
- 6.3 数组 129
- 6.3.1 创建数组 129
- 6.3.2 数组的初始化 130
- 6.3.3 数组的排序 130
- 6.4 集合类 130
- 6.4.1 Collection接口 131
- 6.4.2 Set接口 132
- 6.4.3 List接口 134
- 6.4.4 Queue接口 135
- 6.4.5 Map接口 136
- 6.4.6 HashMap实现类 136
- 6.4.7 TreeMap实现类 137
- 6.4.8 Hashtable实现类 137
- 6.4.9 Iterator迭代器 137
- 6.5 文件与流 139
- 6.5.1 File类 139
- 6.5.2 字节流 140
- 6.5.3 字符流 142
- 6.6 异常处理 145
- 6.6.1 try catch捕获 145
- 6.6.2 throw throws抛出 147
- 6.6.3 自定义异常 147
- 6.7 代码调试 148
- 6.7.1 Web调试方式 148
- 6.7.2 Java调试方式 149
- 6.8 多线程 150
- 6.8.1 线程创建 150
- 6.8.2 线程调度 152
- 6.8.3 线程同步 152
- 6.9 监听器 155
- 6.9.1 实现Listener 155
- 6.9.2 配置Listener 155
- 6.9.3 测试Listener 156
- 6.10 过滤器 157
- 6.10.1 实现Filter 157
- 6.10.2 配置Filter 158
- 6.10.3 测试Filter 159
- 6.11 反射机制 160
- 6.11.1 ReflectDemo 160
- 6.11.2 InvokeDemo 162
- 6.12 XML 163
- 6.12.1 创建XML 163
- 6.12.2 解析XML 164
- 6.13 WebService 166
- 6.13.1 实现服务端 167
- 6.13.2 实现客户端 168
- 6.14 Ajax传递 169
- 6.14.1 Ajax是什么 169
- 6.14.2 Ajax的JavaScript语法 171
- 6.14.3 Ajax的jQuery语法 174
- 6.15 JSP内置对象 175
- 6.15.1 request 175
- 6.15.2 response 176
- 6.15.3 session 177
- 6.15.4 application 179
- 6.15.5 out 180
- 6.15.6 pageContext 180
- 6.15.7 config 181
- 6.15.8 page 182
- 6.15.9 exception 183
- 6.16 Log4j配置 184
- 6.16.1 配置Log4j 184
- 6.16.2 配置Logback 186
- 6.17 小结 188
- 第7章 数据库 189
- 7.1 MySQL 189
- 7.1.1 安装 189
- 7.1.2 命令 191
- 7.1.3 profiling 196
- 7.1.4 SQLyog 198
- 7.2 Oralce 199
- 7.2.1 安装 200
- 7.2.2 命令 202
- 7.2.3 PLSQL 205
- 7.3 NoSQL 207
- 7.3.1 MongoDB 207
- 7.3.2 Redis 210
- 7.4 MyBatis 212
- 7.4.1 MyBatis环境搭建 212
- 7.4.2 MyBatis配置参数 215
- 7.5 Hibernate 219
- 7.5.1 Hibernate环境搭建 219
- 7.5.2 Hibernate配置参数 222
- 7.6 函数 222
- 7.7 游标 223
- 7.8 存储过程 224
- 7.9 小结 225
- 第8章 Struts Spring Hibernate 226
- 8.1 框架搭建 226
- 8.1.1 整体规划 226
- 8.1.2 MVC理念 227
- 8.2 框架集成 233
- 8.2.1 Struts 2的集成 233
- 8.2.2 Spring 3的集成 234
- 8.2.3 Hibernate的集成 235
- 8.2.4 前端插件的集成 236
- 8.3 权限管理 236
- 8.3.1 业务设计 237
- 8.3.2 程序设计 238
- 8.3.3 数据库设计 247
- 8.4 架构设计 250
- 8.4.1 逻辑层 250
- 8.4.2 业务层 255
- 8.4.3 持久层 256
- 8.4.4 架构优化 258
- 8.4.5 架构拓展 259
- 8.4.6 配置文件 268
- 8.5 报表导出 282
- 8.5.1 POI介绍 282
- 8.5.2 POI导出前端实现 283
- 8.5.3 POI导出后端实现 284
- 8.5.4 下载Excel文件 289
- 8.5.5 CSV介绍 290
- 8.5.6 CSV导出前端实现 291
- 8.5.7 CSV导出后端实现 292
- 8.5.8 下载CSV文件 295
- 8.5.9 导出功能XML文件配置 297
- 8.6 加入缓存机制 297
- 8.6.1 Ehcache的搭建 297
- 8.6.2 Ehcache的使用 300
- 8.7 解决并发问题 301
- 8.7.1 连接池 301
- 8.7.2 Nginx 302
- 8.8 小结 306
- 第9章 Spring MVC 307
- 9.1 框架搭建 307
- 9.1.1 整体规划 307
- 9.1.2 技术选型 308
- 9.1.3 项目结构 309
- 9.2 详细设计 309
- 9.2.1 业务设计 310
- 9.2.2 原型设计 310
- 9.2.3 数据库设计 310
- 9.3 架构设计 311
- 9.3.1 逻辑层 311
- 9.3.2 业务层 315
- 9.3.3 持久层 316
- 9.3.4 配置文件 323
- 9.4 POI导入 334
- 9.4.1 POI导入前端实现 334
- 9.4.2 POI导入后端实现 336
- 9.5 小结 342
- 第 10章 电商平台 343
- 10.1 框架搭建 343
- 10.1.1 整体规划 343
- 10.1.2 技术选型 344
- 10.2 详细设计 344
- 10.2.1 业务设计 344
- 10.2.2 原型设计 344
- 10.2.3 数据库设计 345
- 10.3 架构设计 346
- 10.3.1 逻辑层 346
- 10.3.2 业务层 348
- 10.3.3 持久层 349
- 10.3.4 数据通道 350
- 10.4 支付接口 352
- 10.4.1 开发账号 352
- 10.4.2 支付接口集成 354
- 10.4.3 支付接口调试 357
- 10.5 JDBC连接类 361
- 10.6 小结 364
- 第 11章 产品思维 365
- 11.1 何谓产品化 365
- 11.1.1 三个标准 365
- 11.1.2 软件服务 366
- 11.2 软件产品化 368
- 11.2.1 开发文档 368
- 11.2.2 产品风格 368
- 11.2.3 前端框架 369
- 11.2.4 后端框架 371
- 11.3 图表项目 372
- 11.3.1 Bootstrap插件 372
- 11.3.2 ECharts图表 374
- 11.4 小结 376
- 第 12章 项目运维 377
- 12.1 平台维护 377
- 12.1.1 系统上线 378
- 12.1.2 运维报告 380
- 12.2 SonarQube代码扫描 381
- 12.2.1 环境搭建 381
- 12.2.2 PMD模板方式 381
- 12.2.3 Java自定义规则 386
- 12.3 Jenkins自动化部署 394
- 12.3.1 部署介绍 394
- 12.3.2 搭配使用 394
- 12.4 数据迁移 397
- 12.4.1 场景分析 397
- 12.4.2 ETL工具 397
- 12.5 小结 399