ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:2.43MB ,
资源ID:16907307      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16907307.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(305Spring305MyBatis304全注解实例详解文档格式.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

305Spring305MyBatis304全注解实例详解文档格式.docx

1、接下来我将介绍如何在Eclipse3.6中,使用m2eclipse插件构建web应用及测试开发环境。 2、设置MavenMaven的安装很简单,只需要解压即可,请设置PATH变量,这样可以使用命令行进行操作,然后就要在%MAVEN_HOME%conf目录下,对settings.xml作下修改这就是设置本地仓库,目录可以根据自己的实际情况更改,不过请使用/正斜杠,因为我在实际使用中,发现反斜杠有时候获取不到资源。对于个人使用,设置好这个就OK了,至于Nexus配置不在本文讨论范围内,大家如有兴趣可以去看看juven xu的博客,他是目前公认的Maven专家。3、安装m2eclipse选择Help

2、-Install New Software.在弹出的窗口中,点击Add.又会弹出一个小窗口,输入m2eclipse的安装地址,如下图所示:输入完成后,点击OK,这时Eclipse就开始查找这个插件了,请耐心等一会。插件找到后,请勾选要安装的内容,接下来就是一般的安装流程了,此处省略500字。安装完成请重新启动Eclipse,然后再对这个插件进行一番设置。4、设置m2eclipse进入Perferences,选择Maven,去掉Download repository index updates on startup前的勾,默认情况是会在每次启动Eclipse的时候自动去Maven中央仓库下载索引

3、,这无疑是非常不好的,要知道Maven中央仓库所包含的jar资源非常庞大,而且每天都会有很多新的项目上传,弄不好Eclipse还没开始用,就被这些东西搞挂掉了。接下来选择Installations将这个插件自带的Maven换成之前安装的Maven,这样就保证了版本的一致性。设置好这个之后,再点击User Settings,用本机maven的settings.xml替换默认的配置文件,因为默认的设置是会将本地仓库放到系统盘符Documents and Settings用户目录.m2repository这个目录下面。大家可以看到,用maven中的配置文件替换后,下面的Local Repositor

4、y自动变更为settings.xml中的设置。5、创建maven工程做完这些,我们就可以开始创建Maven工程了。选择New-other.-Maven-Maven Project,然后选择下一步请设置工作空间路径,大象的默认工作空间放在eclipse的根目录下面,这里的Location显示的应该为空,为了进行说明,特将路径显示出来。确定没问题后,Next这个列表显示的就是maven支持的所有项目创建类型,我们是开发web应用,所以请选择maven-archetype-webapp最后一步输入我们要创建的项目,在Maven世界中,使用坐标来唯一标识一个构件,可以理解为项目,资源等等。Group

5、Id表示当前项目所属的实际项目,Artifact Id定义实际项目中的一个Maven项目,根据名字就可以看出来,Group Id是一个大范围,而Artifact Id是一个小范围。比如大家都很熟悉的spring,就分成了spring-core.jar、spring-beans.jar、spring-context.jar等等。在maven里面,它的Group Id就是org.springframework,而Artifact Id则为spring-core、spring-beans、spring-context。怎么样?理解了没有?到此,项目生成了,请展开src/main,在main目录下新建

6、一个java文件夹,打开ssm3的项目属性,选择Java Build Path-Source-Add Folder.-勾选java,这样做的目的,就是将src/main/java这个路径作为源文件的文件夹,这和以往用MyEclipse做开发的目录结构是不同的。而maven的规则也是这样定义的,假如你不进行这个设置,就算你在main下面创建了java目录,再添加包或类时,就会有问题,大家试试,看会出现什么错误。6、运行ssm3接下来,在pom.xml里面加入maven-jetty-plugin插件,默认生成的配置都可以去掉,整个pom就只有下图所示的配置。打开Run Configurations

7、,这有多种方式打开,可以从菜单Run里面选,也可以从工具栏选择,还可以在项目点击右键选择。在弹出的窗口,Maven Build里面设置运行参数,点击Browse Workspace.会弹出下图那个小窗口,设定Base directory,加入jetty:run,点击Run,启动jetty在浏览器中输入http:/localhost:8080/ssm3会显示Hello World!,调用的是ssm3/main/webapp/index.jsp,大象加了点内容,结果就是这样的到这里,关于在Eclipse里搭建maven环境,配置,创建,运行,测试就全部讲完了,大家动手做做,熟悉一下这种开发方式,接

8、下来就会在这个骨架上开发SSM3示例。恩,我们下次继续。Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(二) 37 345人阅读 评论(0) 收藏 举报 在上一篇文章中我详细的介绍了如何搭建maven环境以及生成一个maven骨架的web项目,那么这章中我将讲述Spring MVC的流程结构,Spring MVC与Struts2的区别,以及例子中的一些配置文件的分析。一、Spring MVC 3.0介绍 Spring MVC是一个典型的MVC框架,是Spring内置的Web框架,可以作为应用项目的展示层,继Spring 2.0对Spring

9、MVC进行重大升级后,Spring 2.5又为Spring MVC引入了注解驱动功能,再到3.0时代,全面支持REST的网络服务和更容易的网络编程。这一系列的变革,无疑吸引着我们走进Spring MVC 3.0的世界。REST功能是Spring MVC 3.0新增的,它通过不带扩展名的URL来访问系统资源。REST是把访问的所有资源看成静态的,一个或一组,每个不同的URL地址都是一个静态资源。那么Spring MVC 3.0是如何支持REST的呢?简单的说,它是通过RequestMapping及PathVariable注解提供的,在RequestMapping中指定value与method,就

10、可以处理对应的请求。另外spring mvc框架还做了很多很多工作。二、Spring MVC流程 大象根据官方文档的介绍,以及自己的理解,画了一个Spring MVC的流程结构图,大家可以参考下。1、Spring MVC的核心是DispatcherServlet,当客户端发送一个请求时,这个请求经过一系列过滤器处理。然后DispatcherServlet会接收到这个请求。2、DispatcherServlet会从HandlerMapping对象中查找与请求匹配的Controller,并将结果返回给DispatcherServlet。3、DispatcherServlet将请求转发给目标Cont

11、roller,如果定义有拦截器,则会经过这些拦截器处理。4、标Controller处理完成业务逻辑后,会返回一个结果给DispatcherServlet。5、DispatcherServlet根据结果查询ViewResolver,找到与之对应的视图对象,同样将结果返回给DispatcherServlet。6、DispatcherServlet根据指定的显示结果,调用模板对象渲染view。7、将view返回给客户端。根据上面的说明,可以很很明显的看出,Spring MVC的核心是Servlet,并且创建的Controller其实也是一个Servlet。三、Spring与struts2比较另一个非

12、常有名的MVC框架是Struts2,Spring MVC的核心是Servlet,而Struts2的核心则是Filter。下表列出Spring MVC与Struts2的主要区别与比较结果。通过上面的综合比较,Spring MVC 3.0的优势要比Struts2大得多,虽然它还有些不足的地方,但随着后期版本的升级,必然会进行改进,会做的更好。所以采用Spring MVC 3.0作为系统的展示层要比Struts2好。四、线程安全由于Spring MVC默认是Singleton的,所以会产生一个潜在的安全隐患。根本核心是instance变量保持状态的问题。这个问题有两种解决办法:a)在控制器中不使用实

13、例变量b)将控制器的作用域从单例改为原型这两种做法有好有坏,第一种,需要开发人员拥有较高的编程水平与思想意识,在编码过程中力求避免出现这种BUG,而第二种则是容器自动的对每个请求产生一个实例,由JVM进行垃圾回收,因此做到了线程安全。使用第一种方式的好处是实例对象只有一个,所有的请求都调用该实例对象,速度和性能上要优于第二种,不好的地方,就是需要程序员自己去控制实例变量的状态保持问题。第二种由于每次请求都创建一个实例,所以会消耗较多的内存空间。五、配置文件Spring MVC是Spring的一个组成部分,所以配置文件就会变得简单许多。以下就是本例子中最重要的几个配置文件。1、pom.xml管理

14、项目依赖,编译,发布,插件配置等等。所有的依赖包都由配置决定,另外所需依赖包的其它依赖,无需配置,maven会自动获取并进行管理,这无疑帮我们减少了很多工作量,再也不用为到处找jar包,或版本不一致而头疼了。定义依赖版本属性Spring依赖,本例是一个很基础的例子,所以有这些就够了,以后有扩展再增加。MyBatis依赖,iBatis从3.0版之后就改名为MyBatis。这个例子,大象没有使用Hibernate,而是采用更轻量级的MyBatis来作为持久层框架,使用很简单,也很灵活。另外,本例还用到了一个mybatis-spring插件,这是因为spring 3.0.5仅支持ibatis 2.0

15、,所以需要这个插件来处理底层数据源等工作。本例用到了AOP,所以需要这两个依赖下面是其它一些必须的依赖,值得说明的就是,因为在本例中,大象对Service还是用的类,没有进行基于接口的实现方式,所以需要cglib这个依赖。另外,页面使用html作为展示层,使用freemarker标签处理动态数据。2、web.xml 与ssh2的web.xml主要的区别就是替换Struts2的启动配置,改为Spring MVC的设置,配置如下:servlet-context.xml包含容器启动时,所要执行的内容,而service-context.xml则是接下来由spring上下文监听器对其进行扫描执行。这两个

16、配置文件可以合并成一个,大象为了便于管理,并且为了使用spring上下文,写成了两个文件。如果我们不指定init-param配置,默认的,在服务器启动时,会在WEB-INF目录下查找命名规则为-servlet.xml的文件,对应到这里就是ssm3-servlet.xml文件,大象统一将所有文件都放在了classpath下面。3、servlet-context.xmlSpring MVC启动时的配置文件,包含组件扫描、url映射以及设置freemarker参数,让spring不扫描带有Service注解的类。为什么要这样设置?因为servlet-context.xml与service-conte

17、xt.xml不是同时加载,如果不进行这样的设置,那么,spring就会将所有带Service注解的类都扫描到容器中,等到加载service-context.xml的时候,会因为容器已经存在Service类,使得cglib将不对Service进行代理,直接导致的结果就是在service-context中的事务配置不起作用,发生异常时,无法对数据进行回滚。另外能够将REST URL解析为请求映射的是DefaultAnnotationHandlerMapping这个类,它在启动时,对Controller中所有标注了RequestMapping注解的方法,都放到了一个HandlerMapping对象中

18、,当有请求时,就在这个对象中进行查找是否有与之匹配路径的处理方法,有则执行,没有就会输出一个Not Page Found警告信息。展示层使用freemarker模板引擎,为了便于编辑,大象在这里使用html作为展示页。Spring框架对freemarker进行了集成与封装,配置起来非常简单。主要是定义FreeMarker视图解析器与属性配置,网上有很多关于这些属性含义的介绍,大象就不在这里啰嗦了,后面讲到Spring MVC的时候会结合代码来进行说明。Spring MVC支持多种类型的视图文件。如:jsp、freemarker、velocity、tiles、jasperreports等。4、s

19、ervice-context.xml与ssh2里面的application.xml区别不大,主要是将hibernate那部分改为mybatis,还要将MybatisDao基类配置进来,以便Service类可以用注解的方式引入,然后就是扫描包路径,不扫描带有Controller注解的类。因为这些类已经随容器启动时,在servlet-context中扫描过一遍了。5、mybatis-config.xmlmybatis的主配置,里面包含了POJO的映射文件,这里了解一下就行,后面的章节会对这些进行说明,熟悉ibatis的朋友就很简单了,可以直接跳过。到此,关于配置文件的说明就讲完了,因为这个SSM3

20、的例子采用maven来构建,与之前的SSH2不一样,大象对配置文件进行了简要的说明,使用maven的好处,大家应该看出来了,它对于开发构建来说显得简单一些,可以使你不需要到处去找jar包,也不用你去担心版本不一致的问题,另外,对于依赖的jar包,它还能自动去查找它自己的依赖,这可以减少我们很多不必要的重复劳动。下一章,我将分析下本例的层次结构与MyBatis的简单运用。Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(三) 38 789人阅读 评论(0) 收藏 举报 前两章我为大家详细介绍了如何搭建Maven环境、Spring MVC的流程结构

21、、Spring MVC与Struts2的区别以及示例中的一些配置文件的分析。在这一章,我就对示例的层次结构进行说明,以及MyBatis的一些简单介绍。本文不会对MyBatis作详细说明,大象还是假定阅读本文的朋友对MyBatis(ibatis)有最基本的了解,只有这样才能较好的理解本文的内容。关于MyBatis请查看它的官方文档及其它参考资料,本文不作详细讨论。一、工程结构图上面这是典型的Maven项目结构形式,使用本地仓库管理jar包的依赖,使用插件打包编译发布非常方便,让我们从传统的开发方式中解放出来,大家都快来使用Maven构建项目吧!二、映射文件使用MyBatis进行持久化操作,需要设

22、置一个映射文件,一般来说,每张表对应一个实体对象和一个mapper映射文件。而MyBatis里面没有像Hibernate那样复杂的关联关系,所以,它的每个实体类其实就是一个很普通的POJO类。而映射文件中,都是SQL语句,下面就是示例中RoleMapper.xml的代码片段。那么,MyBatis是如何将数据库字段与POJO对象进行映射的呢?这是在它的内部,会将到得的结果或结构集,与我们定义的POJO对象属性进行映射,规则是,属性首字母小写,使用驼峰式命名方式,而字段则是单词与单词间,用下划线连接。比如:数据库有个USER_NAME字段,那么与它对应的属性就应该是userName。如果字段命名没

23、有使用下划线,那么属性可以直接定义成该单词。比如,NAME字段,它的属性就是name。三、基于namespace接口与公用dao的区别从MyBatis3.0开始,对mapper中的namespace属性新增了一个特性:可以指定具体的接口来作为持久化操作类,在接口中定义与映射文件中id属性值相同的方法,MyBatis会自动去绑定和执行对应的SQL语句。这种接口实现方式,需要为每个Mapper创建一个接口,如果系统做大了,维护这些类会比较麻烦,大象个人倾向于基础服务式的Dao实现类,如例子中的MyBatisDao。四、MyBatisDao持久化操作基类,SqlSessionDaoSupport是m

24、ybatis-spring插件中封装的,用于获得SQL Session连接,执行数据库操作,我定义了几个常用的方法。关于mybatis-spring插件我简单介绍一下,Spring 3.x的发布并没有对MyBatis这一优秀的SQL框架提供支持,虽然在它的问题列表中已经有这样的请求,但直到目前3.0.5版的发布,都还没将这个问题处理掉。不过这难不倒开源世界里广大的爱好者与贡献者,mybatis-spring就是在这样的情况下诞生了。它是由MyBatis社区爱好者完成的一个开源项目,用来进行Spring 3.0与MyBatis 3.0的配置整合。该插件需要运行在JDK 5.0或更高版本。五、Se

25、rvice在ssm3这个示例中,大家有没有发现,已经没有为每个entity定义一个dao,而是统一的调用MyBatisDao作为存储服务接口。另外与使用Hibernate的主要区别,就是不能直接传一个对象参数,还必须写上key值,它是namespace加上ID值。六、entityMyBatis的实体类就是一个简单的POJO对象,只是用来与表字段进行关联映射,请注意,我这里所说的映射不是像Hibernate那种绑定关系,只一种存放数据的对象而已。七、测试上面的步骤完成后,接下来就需要测试下我们的业务接口是否正常,编写一个测试类,为了达到目的,简便起见,大象是对RoleService进行测试,Us

26、erService同理类似。在写测试用例前,需要在POM文件中加入一个Srping测试依赖,这是大象在前面两章疏忽漏掉了,请大家谅解。然后编写测试类,运行测试,通过!到此,这一章的内容就讲完了,如果有对注解不理解的地方,请看下我之前的SSH2系列之三,至于MyBatis,它的内容太多了,如果不清楚还请先看下使用指南。下一章我将会介绍web层,以及使用Spring MVC的注解来实现控制器功能。Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(四) 40 607人阅读 评论(0) 收藏 举报 这一章大象将详细分析web层代码,以及使用Spring

27、 MVC的注解及其用法和其它相关知识来实现控制器功能。之前在使用Struts2实现MVC的注解时,是借助struts2-convention这个插件,如今我们使用Spring自带的spring-webmvc组件来实现同样的功能,而且比之以前更简单。另外,还省掉了整合两个框架带来的不稳定因素。对于Spring MVC框架,我主要讲一下它的常用注解,再结合一些示例进行说明,方便大家能够快速理解。一、Spring MVC常用注解说明Controller在类上面定义,表明该类为控制器,返回字符串与redirect:xxxRequestMapping在类或方法上面使用此注解,设置URL访问地址。它有两个属性,value指定访问路径,method指定指定请求方式,请求方式在RequestMethod这个类中,全部以常量形式定义,它默认使用GET请求。RequestParam指定Request请求参数,在方法参数中定义,相当于传统的request.getParameter()。PathVariable获取URL访问路径变量,这是Spring MVC 3.0框架才加入的特性,基于RESTful风格的URL访问路

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1