本书分为四部分。第一部分是Java开发环境的搭建,包括JDK的下载与安装、环境变量的配置、MyEclipse的下载与基本配置。第二部分是MyBatis技术入门,包括剖析JDBC的弊端、MyBatis的背景介绍、入门程序的编写、配置文件的剖析、高级映射及缓存结构的讲解,最后还介绍了MyBatis与Spring框架的整合。第三部分是Spring MVC技术入门,包括Spring MVC的背景介绍、架构整体剖析、环境搭建、处理器与映射器的讲解、前端控制器的源码分析、多种视图解析器的介绍、请求映射与参数绑定的介绍、Validation校验与异常处理和拦截器的讲解。第四部分是Spring MVC与MyBatis的项目整合实战篇,通过对水果网络销售平台的需求分析、功能设计、数据库设计以及模块详细编码实现,让读者了解整合项目开发的整体流程。
本书对框架的介绍通俗易懂,由浅入深,结合实例展示,为读者的入门提供了有力的帮助,且为以后的技术提升打下坚实的基础。
全方位解析面向Web应用的轻量级框架,带你成为Spring MVC开发高手
前 言
自从Java语言诞生以来,就有许多基于Java语言开发的软件涌现,而其中使用Java EE开发环境来开发企业级Web应用也有许多年的历史了。Java EE平台经过多年的更新和换代,其稳定性和完善的安全机制使其牢牢伫立于企业级Web应用开发的前列,受到了许多Web开发者的青睐。在Java EE发展的过程中,许多的开发者和组织对其API进行了优化、改进和封装,进而涌现出了许多优秀的开源框架,如Rod Johnson创建的Spring框架、Gavin King和JBoss团队开发的Hibernate框架、Apache Jakarta项目的Struts框架,以及近两年比较流行的SpringFrameWork的后续产品 Spring MVC与Apache的开源项目MyBatis。使用这些开源框架,使得Web开发的效率和质量得到大大提升。
本书详细介绍了Spring MVC和MyBatis框架的基础知识及核心技术。通过学习框架的基础理论和API的概念,读者可以由浅入深地学习框架的整体技术,从而达到学以致用的目的。在掌握理论知识的同时,通过实例的编写和练习,使得读者对知识点的理解和掌握更加透彻。最后通过一个企业级项目的实战编写,从软件需求分析、功能设计、数据库创建,到开发环境搭建及编码开发,让读者掌握整合框架的实际开发技术,为以后的相关工作和学习打下坚实的实战基础。
本书特色
1.内容基础、全面,涵盖Spring MVC和MyBatis的核心技术知识
本书从 Spring MVC和MyBatis的依赖环境,到其配置文件、API应用,以及各项参数的释义都给予了详细讲解,让读者轻松并快速掌握框架的开发知识体系。对于部分核心知识点,还会通过剖析源码的方式,让读者深入理解框架的设计理念,从深层次上理解框架的理论。
2.知识点伴随鲜活的实例练习,通过实际动手来实现功能
本书对于每一个知识点,都会通过具体实例的编写来向读者展示该知识点的使用技巧和方式,让读者既掌握基础的理论知识,又学习到知识点在具体项目中的实际应用技巧。
3.独特的大型项目跟踪式讲解与开发
本书在介绍完Spring MVC与MyBatis的基础知识及实例后,还增加了项目实战的章节。不同于以往的教程,这里的项目以实际需求为起点,通过软件的需求分析、功能设计、数据库设计及环境的搭建,到最后的开发,一步一步让读者体验整个Web项目从提出设想到最终交付的全部过程。读者在大型项目的跟踪式学习中,不仅可以深切体会如何进行 Spring MVC与MyBatis的项目整合开发,还可以掌握整个Web项目的所有开发流程。
本书内容及体系结构
第1篇 准备工作
本篇对Java开发的环境搭建、编译器的选择与安装都做了详细的讲解,为读者后面的开发学习做好准备。
第2篇 MyBatis技术入门
本篇通过分析传统JDBC开发模式的缺陷,引出MyBatis框架诞生的背景及特点。然后通过一个入门程序让读者对MyBatis有一个大致的了解,继而展开对MyBatis配置文件、高级映射及缓存结构等知识点的讲解。最后讲解了MyBatis与Spring的整合开发,为后期与 Spring MVC的整合做准备。
第3篇 Spring MVC技术入门
本篇通过 Spring MVC技术背景的介绍,以及与Struts框架的对比,让读者对 Spring MVC在项目中扮演的角色有一个大致的了解。然后通过图文解说的方式,详细介绍了 Spring MVC的整个运行体系和所包含的架构模块,让读者带着模块化的思想去学习整个框架,而不是“盲人摸象”。在读者了解了技术背景及大体框架结构后,再逐步讲解 Spring MVC的环境搭建、处理器映射器和适配器、前端控制器和视图解析器、请求映射与参数绑定、Validation校验、异常处理和拦截器等知识点。
第4篇 Spring MVC与MyBatis项目实战
本篇通过一个水果网络销售平台项目,让读者从一个项目负责人和开发人员的角度,全面剖析项目的整个开发流程,广到这个项目的功能设计、框架规划,细到某个具体模块的详细编码实现,让读者从宏观到微观全面掌握 Spring MVC与MyBatis整合的实战项目开发流程。
本书读者对象
Java软件开发工程师
想要全面了解 Spring MVC与MyBatis知识点的人员
想要学习开发Web实战项目的人员
各计算机、软件专业的在校学生
其他对Web开发感兴趣的各类人员
源服务器未能找到目标资源的表示或者是不愿公开一个已经存在的资源表示。 出现这个问题怎么办
请问怎么解决?报错如下:
严重: Servlet [JAX-RS Servlet] in web application [/Fruit-Sales-Platform] threw load() exception
j**a.lang.ClassNotFoundException:
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.j**a:1285)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.j**a:1119)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.j**a:520)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.j**a:501)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.j**a:118)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.j**a:1050)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.j**a:989)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.j**a:4913)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.j**a:5223)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.j**a:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.j**a:752)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.j**a:728)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.j**a:734)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.j**a:1107)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.j**a:1841)
at j**a.util.concurrent.Executors$RunnableAdapter.call(Executors.j**a:511)
at j**a.util.concurrent.FutureTask.run(FutureTask.j**a:266)
at j**a.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.j**a:1149)
at j**a.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.j**a:624)
at j**a.lang.Thread.run(Thread.j**a:748)
哪儿有数据库表啊
为什么MybatisTest中的单元测试我修改了代码,测试的收打印的结果和没改代码打印的结果是一样的?例如:我要查询名字带有“孙”的,打印的结果是我之前没改代码的“李”
第17章的登录模块启动服务出现以下问题
ERROR [localhost-startStop-1] - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘userDaoImpl’: Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire method: public void com.fruitsalesplatform.dao.impl.BaseDaoImpl.setSqlSessionFactory(org.apache.ibatis.session.SqlSessionFactory); nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘sessionFactory’ defined in class path resource [beans.xml]: Invocation of init method failed; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: ‘file [D:\Workspaces\MyEclipse 2017 CI.metadata.me_tcat85\webapps\Fruit-Sales-Platform\WEB-INF\classes\com\fruitsalesplatform\mapper\UserMapper.xml]’; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias ‘com.fruitslaesplatform.entity.User’. Cause: j**a.lang.ClassNotFoundException: Cannot find class: com.fruitslaesplatform.entity.User