• 轻量级Java EE企业应用实战(第5版)――Struts 2+Spring 5+Hiberna
图书条目标准图
21年品牌 40万+商家 超1.5亿件商品

轻量级Java EE企业应用实战(第5版)――Struts 2+Spring 5+Hiberna

17.32 1.4折 128 九五品

仅1件

河北廊坊
认证卖家担保交易快速发货售后保障

作者李刚 著

出版社电子工业出版社

出版时间2018-03

版次1

装帧平装

货号A4

上书时间2024-12-27

   商品详情   

品相描述:九五品
图书标准信息
  • 作者 李刚 著
  • 出版社 电子工业出版社
  • 出版时间 2018-03
  • 版次 1
  • ISBN 9787121337161
  • 定价 128.00元
  • 装帧 平装
  • 开本 16开
  • 页数 836页
  • 字数 1.81千字
  • 正文语种 简体中文
【内容简介】
本书是《轻量级Java EE企业应用实战》的第5版,这一版保持了前几版内容全面、深入的特点,主要完成全部知识的升级。本书介绍了Java EE领域的四个开源框架和技术:Struts 2、Spring、Hibernate和JPA。其中Struts 2升级到2.5.14,Spring升级到5.0.2,Hibernate升级到5.2.12。第5版新增介绍了JPA的内容,包括其API的基本用法、JPA查询、JPA动态条件查询等。本书还全面介绍了Servlet 3.1的新特性,以及Tomcat 8.5的配置和用法,本书的示例也应该在Tomcat 8.5上运行。本书重点介绍了如何整合Struts 2.5+Spring 5.0+Hibernate 5.2进行Java EE开发,主要包括三部分。第一部介绍了Java EE开发的基础知识,以及如何搭建开发环境。第二部分详细讲解了Struts 2.5、Spring 5.0、Hibernate 5.2、JPA的用法,在介绍三个框架时,以Eclipse IDE的使用来上手,一步步带领读者深入这些技术的核心。这部分内容是笔者讲授“疯狂Java实训”的培训讲义,因此是本书的重点部分。这部分内容既包含了笔者多年开发经历的领悟,也融入了丰富的授课经验。第三部分示范开发了一个包含7个表,表之间具有复杂的关联映射、继承映射等关系,且业务也相对复杂的工作流案例,希望让读者理论联系实际,将三个框架真正运用到实际开发中。该案例采用目前非常流行、规范的Java EE架构,整个应用分为领域对象层、DAO层、业务逻辑层、MVC层和视图层,各层之间分层清晰,层与层之间以松耦合的方式组织在一起。该案例既提供了与IDE无关的、基于Ant管理的项目源码,也提供了基于Eclipse IDE的项目源码,以最大限度地满足读者的需求。本书不再介绍Struts 1.x相关内容,如果读者希望获取《轻量级Java EE企业应用实战》第1版中关于Struts 1.x的知识,请登录http://www.crazyit.org下载。当读者阅读此书遇到技术难题时,也可登录http://www.crazyit.org发帖,笔者将会及时予以解答。在阅读本书之前,建议先认真阅读笔者所著的《疯狂Java讲义》一书。本书适合于有较好的Java编程基础,或者有初步JSP、Servlet基础的读者阅读。本书尤其适合于对Struts 2、Spring、Hibernate了解不够深入,或者对Struts 2+ Spring+Hibernate整合开发不太熟悉的开发人员阅读。
【作者简介】
李刚,十余年软件开发从业经验,疯狂软件教育中心教学总监。疯狂Java实训营创始人,疯狂Java体系原创图书作者。广东技术师范学院计算机科学系兼职副教授,CSDN特邀讲师。培训的学生已在腾讯、阿里、华为、IBM、网易、唯品会、电信盈科等名企就职。国内知名高端IT技术图书作家,已出版《疯狂Java讲义》《疯狂Android讲义》《轻量级Java EE企业应用实战》《疯狂前端开发讲义》《疯狂HTML5/CSS3/JavaScript讲义》《疯狂iOS讲义(基础篇)(提高篇)》《疯狂XML讲义》《经典JavaEE企业应用实战》《Struts 2.x quanwei指南》等著作。其中疯狂Java体系图书均已沉淀多年,赢得极高的市场认同,多次重印,多部著作印刷数量超过10万册,并被多所“985”“211”院校选作教材,部分图书已被翻译成繁体中文版,授权到中国台湾地区。
【目录】
第1章 Java EE应用和开发环境1
1.1 Java EE应用概述2
1.1.1 Java EE应用的分层模型2
1.1.2 Java EE应用的组件3
1.1.3 Java EE应用的结构和优势4
1.1.4 常用的Java EE服务器4
1.2 轻量级Java EE应用相关技术5
1.2.1 JSP、Servlet 3.x和JavaBean及替代技术5
1.2.2 Struts 2.5及替代技术5
1.2.3 Hibernate 5.2及替代技术6
1.2.4 Spring 5.0及替代技术6
1.3 Tomcat的下载和安装7
1.3.1 安装Tomcat服务器8
1.3.2 配置Tomcat的服务端口9
1.3.3 进入控制台9
1.3.4 部署Web应用12
1.3.5 配置Tomcat的数据源12
1.4 Eclipse的安装和使用14
1.4.1 Eclipse的下载和安装14
1.4.2 在线安装Eclipse插件15
1.4.3 从本地压缩包安装插件17
1.4.4 手动安装Eclipse插件17
1.4.5 使用Eclipse开发Java EE应用17
1.4.6 导入Eclipse项目20
1.4.7 导入非Eclipse项目21
1.5 Ant的安装和使用22
1.5.1 Ant的下载和安装23
1.5.2 使用Ant工具23
1.5.3 定义生成文件25
1.5.4 Ant的任务(task)29
1.6 Maven的安装和使用31
1.6.1 下载和安装Maven31
1.6.2 设置Maven32
1.6.3 创建、构建简单的项目33
1.6.4 Maven的核心概念36
1.6.5 依赖管理41
1.6.6 POM文件的元素43
1.7 使用SVN进行协作开发44
1.7.1 下载和安装SVN服务器45
1.7.2 配置SVN资源库45
1.7.3 下载和安装SVN客户端47
1.7.4 将项目发布到服务器47
1.7.5 从服务器下载项目48
1.7.6 提交(Commit)修改48
1.7.7 同步(Update)本地文件48
1.7.8 添加文件和49
1.7.9 删除文件和50
1.7.10 查看文件或的版本变革50
1.7.11 从以前版本重新开始50
1.7.12 创建分支51
1.7.13 沿着分支开发51
1.7.14 合并分支52
1.7.15 使用Eclipse作为SVN客户端52
1.8 使用Git进行软件配置管理(SCM)55
1.8.1 下载和安装Git、TortoiseGit56
1.8.2 创建本地资源库58
1.8.3 添加(Add)文件和59
1.8.4 提交(Commit)修改60
1.8.5 查看文件或的版本变更61
1.8.6 删除文件和62
1.8.7 从以前版本重新开始62
1.8.8 克隆(Clone)项目63
1.8.9 创建分支64
1.8.10 沿着分支开发64
1.8.11 合并分支65
1.8.12 使用Eclipse作为Git客户端65
1.8.13 配置远程中央资源库67
1.8.14 推送(Push)项目69
1.8.15 获取(Fetch)项目和拉取(Pull)项目70
1.9 本章小结72

第2章 JSP/Servlet及相关技术详解73
2.1  Web应用和web.xml文件74
2.1.1  构建Web应用74
2.1.2  配置描述符web.xml75
2.2  JSP的基本原理76
2.3  JSP的4种基本语法80
2.3.1  JSP注释80
2.3.2  JSP声明81
2.3.3  JSP输出表达式82
2.3.4  JSP小脚本83
2.4  JSP的3个编译指令85
2.4.1  page指令85
2.4.2  include指令89
2.5  JSP的7个动作指令90
2.5.1  forward指令90
2.5.2  include指令92
2.5.3  useBean、setProperty、getProperty指令93
2.5.4  plugin指令96
2.5.5  param指令96
2.6  JSP脚本中的9个内置对象96
2.6.1  application对象98
2.6.2  config对象103
2.6.3  exception对象105
2.6.4  out对象107
2.6.5  pageContext对象108
2.6.6  request对象109
2.6.7  response对象116
2.6.8  session对象120
2.7  Servlet介绍122
2.7.1  Servlet的开发122
2.7.2  Servlet的配置124
2.7.3  JSP/Servlet的生命周期125
2.7.4  load-on-startup Servlet126
2.7.5  访问Servlet的配置参数127
2.7.6  使用Servlet作为控制器129
2.8  JSP 2的自定义标签133
2.8.1  开发自定义标签类133
2.8.2  建立TLD文件134
2.8.3  使用标签库135
2.8.4  带属性的标签136
2.8.5  带标签体的标签139
2.8.6  以页面片段作为属性的标签141
2.8.7  动态属性的标签143
2.9  Filter介绍144
2.9.1  创建Filter类145
2.9.2  配置Filter146
2.9.3  使用URL Rewrite实现网站伪静态149
2.10  Listener介绍150
2.10.1  实现Listener类151
2.10.2  配置Listener152
2.10.3  使用ServletContextAttributeListener153
2.10.4  使用ServletRequestListener和ServletRequestAttributeListener154
2.10.5  使用HttpSessionListener和HttpSessionAttributeListener155
2.11  JSP 2特性160
2.11.1  配置JSP属性160
2.11.2  表达式语言162
2.11.3  Tag File支持170
2.12  Servlet 3新特性172
2.12.1  Servlet 3的注解172
2.12.2  Servlet 3的Web模块支持172
2.12.3  Servlet 3提供的异步处理174
2.12.4  改进的Servlet API177
2.13  Servlet 3.1新增的非阻塞式IO180
2.14  Tomcat 8.5的WebSocket支持182
2.15  本章小结187

第3章 Struts 2的基本用法188
3.1  MVC思想概述189
3.1.1  传统Model 1和Model 2189
3.1.2  MVC思想及其优势190
3.2  Struts 2的下载和安装191
3.2.1  为Web应用增加Struts 2支持191
3.2.2  在Eclipse中使用Struts 2192
3.2.3  增加登录处理193
3.3  Struts 2的流程196
3.3.1  Struts 2应用的开发步骤196
3.3.2  Struts 2的运行流程197
3.4  Struts 2的常规配置198
3.4.1  常量配置198
3.4.2  包含其他配置文件204
3.5  实现Action204
3.5.1  Action接口和ActionSupport基类206
3.5.2  Action访问Servlet API208
3.5.3  Action直接访问Servlet API210
3.5.4  使用ServletActionContext访问Servlet API212
3.6  配置Action212
3.6.1  包和命名空间213
3.6.2  Action的基本配置216
3.6.3  使用Action的动态方法调用217
3.6.4  指定method属性及使用通配符219
3.6.5  配置默认Action224
3.6.6  配置Action的默认处理类225
3.7  配置处理结果225
3.7.1  理解处理结果225
3.7.2  配置结果226
3.7.3  Struts 2支持的结果类型227
3.7.4  plainText结果类型229
3.7.5  redirect结果类型230
3.7.6  redirectAction结果类型231
3.7.7  动态结果232
3.7.8  Action属性值决定物理视图资源232
3.7.9  全局结果234
3.7.10  使用PreResultListener235
3.8  配置Struts 2的异常处理236
3.8.1  Struts 2的异常处理机制236
3.8.2  声明式异常捕捉238
3.8.3  输出异常信息239
3.9  Convention插件与“约定”支持240
3.9.1  Action的搜索和映射约定241
3.9.2  按约定映射Result243
3.9.3  Action链的约定246
3.9.4  自动重加载映射247
3.9.5  Convention插件的相关常量247
3.9.6  Convention插件相关注解248
3.10  使用Struts 2的国际化248
3.10.1  视图页面的国际化249
3.10.2  Action的国际化250
3.10.3  使用包范围的国际化资源251
3.10.4  使用全局国际化资源252
3.10.5  输出带占位符的国际化消息254
3.10.6  加载资源文件的顺序256
3.11  使用Struts 2的标签库256
3.11.1  Struts 2标签库概述256
3.11.2  使用Struts 2标签257
3.11.3  Struts 2的OGNL表达式语言258
3.11.4  OGNL中的集合操作260
3.11.5  访问静态成员261
3.11.6  Lambda(?)表达式261
3.11.7  控制标签262
3.11.8  数据标签271
3.11.9  主题和模板279
3.11.10  自定义主题281
3.11.11  表单标签282
3.11.12  非表单标签294
3.12  本章小结297

第4章 深入使用Struts 2298
4.1  详解Struts 2的类型转换299
4.1.1  Struts 2内建的类型转换器299
4.1.2  基于OGNL的类型转换300
4.1.3  指定集合元素的类型302
4.1.4  自定义类型转换器304
4.1.5  注册类型转换器306
4.1.6  基于Struts 2的自定义类型转换器308
4.1.7  处理Set集合308
4.1.8  类型转换中的错误处理311
4.2  使用Struts 2的输入校验316
4.2.1  编写校验规则文件316
4.2.2  国际化提示信息319
4.2.3  使用客户端校验320
4.2.4  字段校验器配置风格321
4.2.5  非字段校验器配置风格322
4.2.6  短路校验器324
4.2.7  校验文件的搜索规则325
4.2.8  校验顺序和短路327
4.2.9  内建校验器327
4.2.10  基于注解的输入校验337
4.2.11  手动完成输入校验339
4.3  使用Struts 2控制文件上传342
4.3.1  Struts 2的文件上传342
4.3.2  实现文件上传的Action343
4.3.3  配置文件上传的Action345
4.3.4  手动实现文件过滤347
4.3.5  拦截器实现文件过滤348
4.3.6  输出错误提示349
4.3.7  文件上传的常量配置350
4.4  使用Struts 2控制文件下载351
4.4.1  实现文件下载的Action351
4.4.2  配置Action352
4.4.3  下载前的授权控制352
4.5  详解Struts 2的拦截器机制353
4.5.1  拦截器在Struts 2中的作用354
4.5.2  Struts 2内建的拦截器354
4.5.3  配置拦截器356
4.5.4  使用拦截器的配置语法357
4.5.5  配置默认拦截器358
4.5.6  实现拦截器类360
4.5.7  使用拦截器361
4.5.8  拦截方法的拦截器362
4.5.9  拦截器的执行顺序365
4.5.10  拦截结果的监听器366
4.5.11  覆盖拦截器栈里特定拦截器的参数367
4.5.12  使用拦截器完成权限控制368
4.6  使用Struts 2的Ajax支持370
4.6.1  使用stream类型的Result实现Ajax370
4.6.2  JSON的基本知识372
4.6.3  实现Action逻辑375
4.6.4  JSON插件与json类型的Result376
4.6.5  实现JSP页面377
4.7  本章小结378

第5章 Hibernate的基本用法380
5.1  ORM和Hibernate381
5.1.1  对象/关系数据库映射(ORM)381
5.1.2  基本映射方式382
5.1.3  流行的ORM框架简介383
5.1.4  Hibernate概述383
5.2  Hibernate入门384
5.2.1  Hibernate下载和安装384
5.2.2  Hibernate的数据库操作385
5.2.3  在Eclipse中使用Hibernate389
5.3  Hibernate的体系结构392
5.4  深入Hibernate配置文件393
5.4.1  创建Configuration对象393
5.4.2  hibernate.properties文件与hibernate.cfg.xml文件396
5.4.3  JDBC连接属性396
5.4.4  数据库方言397
5.4.5  JNDI数据源的连接属性398
5.4.6  Hibernate事务属性399
5.4.7  二级缓存相关属性399
5.4.8  外连接抓取属性399
5.4.9  其他常用的配置属性400
5.5  深入理解持久化对象400
5.5.1  持久化类的要求400
5.5.2  持久化对象的状态401
5.5.3  改变持久化对象状态的方法402
5.6  深入Hibernate映射405
5.6.1  映射属性407
5.6.2  映射主键415
5.6.3  使用Hibernate的主键生成器417
5.6.4  映射集合属性418
5.6.5  集合属性的性能分析424
5.6.6  有序集合映射426
5.6.7  映射数据库对象427
5.7 映射组件属性430
5.7.1 组件属性为集合432
5.7.2 集合属性的元素为组件433
5.7.3  组件作为Map的索引434
5.7.4  组件作为复合主键436
5.7.5  多列作为联合主键438
5.8  使用传统的映射文件439
5.8.1  增加XML映射文件439
5.8.2  注解,还是XML映射文件441
5.9  本章小结442

第6章 深入使用Hibernate与JPA443
6.1  Hibernate的关联映射444
6.1.1  单向N-1关联444
6.1.2  单向1-1关联449
6.1.3  单向1-N关联450
6.1.4  单向N-N关联453
6.1.5  双向1-N关联455
6.1.6  双向N-N关联458
6.1.7  双向1-1关联459
6.1.8  组件属性包含的关联实体461
6.1.9  基于复合主键的关联关系463
6.1.10  复合主键的成员属性为关联实体464
6.1.11  持久化的传播性467
6.2  继承映射468
6.2.1  整个类层次对应一个表的映射策略470
6.2.2  连接子类的映射策略472
6.2.3  每个具体类对应一个表的映射策略475
6.3  批量处理策略477
6.3.1  批量插入477
6.3.2  JPA与Hibernate478
6.3.3  JPA的批量插入479
6.3.4  批量更新481
6.3.5  DML风格的批量更新/删除481
6.3.6  JPA的DML支持482
6.4  HQL查询和JPQL查询483
6.4.1  HQL查询483
6.4.2 JPQL查询485
6.4.3  from子句487
6.4.4  关联和连接487
6.4.5  查询的select子句490
6.4.6  HQL查询的聚集函数491
6.4.7  多态查询491
6.4.8  HQL查询的where子句492
6.4.9  表达式493
6.4.10  order by子句495
6.4.11  group by子句495
6.4.12  子查询495
6.4.13  命名查询496
6.5  动态条件查询497
6.5.1  执行DML语句501
6.5.2  select的用法502
6.5.3  元组查询503
6.5.4  多Root查询504
6.5.5  关联和动态关联505
6.5.6  分组、聚集和排序508
6.6  原生SQL查询510
6.6.1  标量查询510
6.6.2  实体查询511
6.6.3  处理关联和继承514
6.6.4  命名SQL查询515
6.6.5  调用存储过程517
6.6.6  使用定制SQL518
6.6.7  JPA的原生SQL查询520
6.7  数据过滤524
6.8  事务控制526
6.8.1  事务的概念527
6.8.2  Session与事务527
6.8.3  上下文相关的Session529
6.9  二级缓存和查询缓存530
6.9.1  开启二级缓存530
6.9.2  管理缓存和统计缓存533
6.9.3  使用查询缓存534
6.10  事件机制537
6.10.1  拦截器537
6.10.2  事件系统539
6.11  本章小结541

第7章 Spring的基本用法542
7.1  Spring简介和Spring 5.0的变化543
7.1.1  Spring简介543
7.1.2  Spring 5.0的变化544
7.2  Spring入门544
7.2.1  Spring下载和安装544
7.2.2  使用Spring管理Bean545
7.2.3  在Eclipse中使用Spring548
7.3  Spring的核心机制:依赖注入551
7.3.1  理解依赖注入552
7.3.2  设值注入553
7.3.3  构造注入557
7.3.4  两种注入方式的对比558
7.4  使用Spring容器559
7.4.1  Spring容器559
7.4.2  使用ApplicationContext560
7.4.3  ApplicationContext的国际化支持562
7.4.4  ApplicationContext的事件机制563
7.4.5  让Bean获取Spring容器566
7.5  Spring容器中的Bean568
7.5.1  Bean的基本定义和Bean别名568
7.5.2  容器中Bean的作用域569
7.5.3  配置依赖572
7.5.4  设置普通属性值574
7.5.5  配置合作者Bean575
7.5.6  使用自动装配注入合作者Bean575
7.5.7  注入嵌套Bean578
7.5.8  注入集合值579
7.5.9  组合属性583
7.5.10  Spring的Bean和JavaBean584
7.6  Spring提供的Java配置管理585
7.7  创建Bean的3种方式588
7.7.1  使用构造器创建Bean实例588
7.7.2  使用静态工厂方法创建Bean589
7.7.3  调用实例工厂方法创建Bean591
7.8  深入理解容器中的Bean593
7.8.1  抽象Bean与子Bean593
7.8.2  Bean继承与Java继承的区别595
7.8.3  容器中的工厂Bean595
7.8.4  获得Bean本身的id597
7.8.5  强制初始化Bean598
7.9  容器中Bean的生命周期598
7.9.1  依赖关系注入之后的行为599
7.9.2  Bean销毁之前的行为601
7.9.3  协调作用域不同步的Bean603
7.10  高级依赖关系配置606
7.10.1  获取其他Bean的属性值607
7.10.2  获取Field值609
7.10.3  获取方法返回值611
7.11  基于XML Schema的简化配置方式614
7.11.1  使用p:命名空间简化配置614
7.11.2  使用c:命名空间简化配置615
7.11.3  使用util:命名空间简化配置617
7.12  Spring提供的表达式语言(SpEL)619
7.12.1  使用Expression接口进行表达式求值619
7.12.2  Bean定义中的表达式语言支持621
7.12.3  SpEL语法详述622
7.13  本章小结627

第8章 深入使用Spring628
8.1  两种后处理器629
8.1.1  Bean后处理器629
8.1.2  Bean后处理器的用处633
8.1.3  容器后处理器633
8.1.4  属性占位符配置器634
8.1.5  重写占位符配置器636
8.2  Spring的“零配置”支持637
8.2.1  搜索Bean类637
8.2.2  指定Bean的作用域640
8.2.3  使用@Resource和@Value配置依赖640
8.2.4  使用@PostConstruct和@PreDestroy定制生命周期行为641
8.2.5  使用@DependsOn和@Lazy改变初始化行为642
8.2.6  自动装配和精确装配643
8.2.7  Spring 5新增的注解647
8.2.8  使用@Required检查注入648
8.3  资源访问648
8.3.1  Resource实现类649
8.3.2  ResourceLoader接口和ResourceLoaderAware接口653
8.3.3  使用Resource作为属性655
8.3.4  在ApplicationContext中使用资源656
8.4  Spring的AOP660
8.4.1  为什么需要AOP660
8.4.2  使用AspectJ实现AOP661
8.4.3  AOP的基本概念667
8.4.4  Spring的AOP支持668
8.4.5  基于注解的“零配置”方式669
8.4.6  基于XML配置文件的管理方式684
8.5  Spring的缓存机制690
8.5.1  启用Spring缓存690
8.5.2  使用@Cacheable执行缓存693
8.5.3  使用@CacheEvict清除缓存696
8.6  Spring的事务698
8.6.1  Spring支持的事务策略698
8.6.2  使用XML Schema配置事务策略702
8.6.3  使用@Transactional708
8.7  Spring整合Struts 2709
8.7.1  启动Spring容器709
8.7.2  MVC框架与Spring整合的思考710
8.7.3  让Spring管理控制器711
8.7.4  使用自动装配715
8.8  Spring整合Hibernate717
8.8.1  Spring提供的DAO支持717
8.8.2  管理Hibernate的SessionFactory718
8.8.3  实现DAO组件的基类719
8.8.4  HibernateTemplate和HibernateDaoSupport722
8.8.5  实现DAO组件725
8.8.6  使用IoC容器组装各种组件725
8.8.7  使用声明式事务728
8.9  Spring整合JPA729
8.9.1  管理EntityManagerFactory729
8.9.2  实现DAO组件基类732
8.9.3  使用声明式事务734
8.10  本章小结735

第9章 企业应用开发的思考和策略736
9.1  企业应用开发面临的挑战737
9.1.1  可扩展性、可伸缩性737
9.1.2  快捷、可控的开发738
9.1.3  稳定性、高效性738
9.1.4  花费最小化,利益最大化739
9.2  如何面对挑战739
9.2.1  使用建模工具739
9.2.2  利用优秀的框架739
9.2.3  选择性地扩展741
9.2.4  使用代码生成器742
9.3  常见设计模式精讲742
9.3.1  单例模式743
9.3.2  简单工厂744
9.3.3  工厂方法和抽象工厂750
9.3.4  代理模式753
9.3.5  命令模式758
9.3.6  策略模式761
9.3.7  门面模式763
9.3.8  桥接模式766
9.3.9  观察者模式769
9.4  常见的架构设计策略773
9.4.1  贫血模型773
9.4.2  领域对象模型776
9.4.3  合并业务逻辑组件与DAO组件778
9.4.4  合并业务逻辑组件和Domain Object779
9.4.5  抛弃业务逻辑层780
9.5  本章小结781

第10章 简单工作流系统782
10.1  项目背景及系统结构783
10.1.1  应用背景783
10.1.2  系统功能介绍783
10.1.3  相关技术介绍784
10.1.4  系统结构785
10.1.5  系统的功能模块785
10.2  Hibernate持久层786
10.2.1  设计持久化实体786
10.2.2  创建持久化实体类787
10.3  实现DAO层792
10.3.1  DAO组件的定义792
10.3.2  实现DAO组件795
10.3.3  部署DAO层797
10.4  实现Service层799
10.4.1  业务逻辑组件的设计799
10.4.2  实现业务逻辑组件800
10.4.3  事务管理805
10.4.4  部署业务逻辑组件806
10.5  实现任务的自动调度806
10.5.1  使用Quartz806
10.5.2  在Spring中使用Quartz810
10.6  实现系统Web层813
10.6.1  Struts 2和Spring的整合813
10.6.2  控制器的处理顺序图814
10.6.3  员工登录814
10.6.4  进入打卡816
10.6.5  处理打卡818
10.6.6  进入申请819
10.6.7  提交申请821
10.6.8  使用拦截器完成权限管理823
10.7  本章小结824
点击展开 点击收起

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP