版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、struts2.1.6spring2.5.6hibernate3.3. 1完全注释实例详细信息(1)在JavaEE企业开发中,以SSH2框架为中心的应用程序非常广泛,大象根据项目的实践经验,通过一个示例来详细说明如何实现全注释型开发。开发环境JDK1.6.0_18Eclipse3.2.1MyEclipse5.1.0Tomcat6.0.10MySQL5.0.27Navicat Lite for MySQL 8.1.20开发环境可能因个人而异,但JDK的版本不能小于1.5。 因为版本1.5支持的新功能很多。 请不要在正在使用的版本之前测试Tomcat和MySQL,因为它没有在其他版本中测试。 Na
2、vicat是MySQL数据库的图形操作工具。 在此,假设大家现在正在设置开发环境,下面进行详细说明。因为说明的内容很多,大象决定把它们分几章来说。 本章主要论述jar包的选择。第1部分:选择必需的jar包创建新的web项目,并将所需的jar包复制到lib中。 根据本文的示例demo,大象显示了下图所示的jar包的最小配置。对这些jar包进行说明,以便于理解。解压缩Struts2.1.6中的lib文件夹,然后从其中选择以上7个jar包添加到项目库中。 通用记录、freemarker、ognl、struts2-core和xwork中的五个是struts2的核心包。 在此版本的Struts2.1.6
3、中,还必须添加commons-fileupload包。 否则,启动会出错,但不需要像互联网上传言那样添加commons-io的jar包。 这些大象已经自己测试过了。 在本示例中,我们使用了名为struts2- conventi on-plugin-2.1.6.jar的插件,因为我们还注释了struts2。 为了与spring集成,还需要struts2- spring-plugin-2.1.6.jar。大象在这里偷懒,放着spring完整的jar包。 如果想整理类库,请选择其分类jar包。 例如,在此示例中,struts2用作MVC框架,因此,spring中的webmvc不可用。 如果有要改的朋
4、友,请自己修改。 另外,要完全采用spring的jar包,还需要Spring2.5.6libconcurrent文件夹中的backport-util-concurrent.jar,如果不加上这些,spring就会出错但是,在spring分类jar包的形式中,这不需要追加,具体使用什么需要依赖于该包,但是大象还没有测试,所以需要进行验证。 另外,libslf4j下面的日志包现在很多情况下采用了基于slf4j接口的记录程序,其优点是能够以slf4j接口为基础实现,可以在不更改代码的情况下交换记录程序。 最后,由于Spring源代码使用公共日志,因此此软件包必须很少,但由于struts2也在使用,因
5、此此处被省略。从版本3.3开始,Hibernate只需要大幅调整jar包的结构,并在librequired文件夹下添加6个jar包。 这六个jar包都是使用Hibernate所必需的。 此外,还要添加hibernate核心包。 这里将slf4j-api-1.5.2.jar替换为1.5.0是因为slf4j是通用登录接口,不提供任何实现。 demo使用log4j,而hibernate软件包没有log4j的slf4j实现。 版本不一致时会异常,所以采用Spring2.5.6libslf4j提供的版本。 此外,commons-collections-3.1.jar已更改为Struts2.1.6版3.2
6、。在本示例中,这些包是必不可少的,因为它们已使用Hibernate JPA完成了实体对应。 使用注释,不需要写麻烦的配置文件,错误的概率降低。 而且现在很多人都喜欢这种方法。 大家都可以下载到sourceforge上。下载地址: http:/SourceF/projects/hibernate/files /在此示例中,使用DBCP连接池来管理数据源。MySQL数据库的连接驱动程序。此软件包的角色是创建动态代理对象。 例如,如果使用AOP方法管理spring事务,则目标对象没有实现接口,如果使用AOP处理事务,则需要此jar包。 位于Spring2.5.6libcglib中。J
7、STL标签库、古典东东,可以根据需要添加到lib中。大象在这里向大家建议开发时,大多不太依赖MyEclipse提供的功能,而是手动进行。 那么方便是方便的,但对学习不利。 例如,添加上述开发中使用的类库可以更清楚地理解每个jar包的作用,增加知识积累,对以后调试很有用。 Ok,关于这个部分的内容到此为止。 那么,接下来继续吧struts2.1.6spring2.5.6hibernate3.3. 1完全注释实例详细信息(2)因为在上一章详细分析了JAR包的选择,所以这次就示例的必要配置文件进行说明。 这些配置在互联网上也能很容易地找到,但是因为很多人没有阐述理由,所以这样就不会提高。 现在,让大
8、象详细分析一下这些内容。实例中包含几个配置文件,包括应用程序上下文. XMLJDBC .属性pertiesstruts.xmlweb.xml本章只介绍应用程序上下文. XML、perties和web.xml。 log4j的构成差异很大,在正文的范围之外。 对于struts.xml,我们使用实现struts2注释的struts2-convention-plugin插件,因此可以将这两个插件组合起来。第二部分:分析轮廓JDBC .属性因为在本示例中使用的是MySQL数据库,所以我设置了一个属性文件,用于存储连接信息和Hibernate相关设置。使用Hibernat
9、e与数据库进行交换,将它们写入单独的文件很简单,如果想与sql Server或Oracle交换,只要变更driver、url、dialect,就能自由控制SQL语句的显示的开关很方便关于这里写的内容如何使用呢?接下来,请参考applicationContext.xml的说明。应用程序上下文. XML这个文件是spring的主要配置文件,当然,在这个例子中,spring的配置文件只有一个,内容很少,但是要做的工作还有很多,我们来详细分析一下。我把这两个部分合在一起,是因为这两个部分相互连接,而且容易解释。 名为PropertyPlaceholderConfigurer的类读取jdbc. prop
10、erties文件,并将其设置为该类的属性。 然后,将以下数据源配置中定义的$jdbc.driver和$jdbc.url字符串替换为属性文件中同名的值。 写作$用于分析类内的方法,在网上被称为占位符。 源代码实际上是字符串剪切前后的特殊字符,并从定义的名称中查找属性文件中的相应值。 此类只能读取属性格式的文件。 如果还有其他属性文件需要添加,可以在列表之间添加并写入value标签。根据base-package中指定的路径,扫描并自动注入包含注释的所有Bean。 例如,Repository,Service表示评论,前者表示持久层,后者表示业务层。 这是一个非常好的功能,Spring2.5加上了一个
11、很棒的特性。 如果有那个的话,我们就不需要写那个了。 正文的主旨是全注释,是为了告诉人们不写构成文件(当然绝对不写)如何进行开发工作。 这个部分的具体情况将在后面的代码章中详细说明。这是Spring中定义的Hibernate相关配置,Spring已经集成了此功能的一部分。 class中定义的类名称更有意义的是,通过注释映射实体来创建Hiberante SessionFactory。 $hibernate.dialect和$hibernate.show_sql类似于上述获取数据源配置的方法,在定义了application contspring2.5. 6版添加了packagesToScan属性,
12、根据value中定义的路径扫描其下的所有注释实体类。 大象测试了几条这条路径。 另外,看到源代码,发现不是所有的路径,而是只匹配某种路径。 例如,上面的值表示,如果扫描entity包下的所有包的注释类,并将类放置在entity包下,则在服务器启动或程序运行时不会发生错误。 但是,如果代码需要这个类,则会发生异常,通知您找不到实体。这是事务定义,使用注释来定义事务(transactional )。 proxy-target-class=true 表示使用动态代理类来管理事务,如果是false,则表示使用接口代理来管理事务(默认值为false )。 什么意思,需要参加事务的类在实现接口时需要Spr
13、ing的缺省事务管理,在不使用接口而直接使用类时需要cglib类库的支持。 动态创建目标类(需要参加事务的类)的子类,并对该子类中的方法(当然从目标类继承)进行事务管理。 可以看出,这实际上是AOP切断面,而且参加事务的方法不是私有、静态、最终的方法。 这也不严格,不能加入事务意味着不能积极启动事务,公共方法调用一个私有方法,公共方法由动态代理加入事务。 但是,静态和最终两种方法没有被子类独占,所以不能参加事务。 请注意,如果这两种方法不被其他事务方法调用,则以无事务的方式执行,容易导致危险。这是使用配置文件定义事务的方法,callout只需写出这样的词语,就能在商务类或方法中添加名为Tran
14、sactional的编号标记来完成事务声明,但是每个商务类都有一个类配置文件宣言不附加这些标签,只要方法名比较统一,就可以如上所述定义事务规格,在aop标签中定义入口点和执行通知。 如果业务逻辑不太复杂,我觉得布局简单,修改也很方便。 这两种方法是我写的,用哪个由你们自己决定。web.xml由于当前使用的servlet容器是版本2.4,所以需要在web.xml中写入配置文件,到版本3.0时可以在注释中实现。spring应用程序上下文配置文件的路径。 您可以使用通配符。 applicationContext*.xml表示以applicationContext开头的所有xml文件。 多个路径用号码
15、分隔。 例如,可以写如下但是,推荐通配符的写法,做得很简单,为什么会那么复杂呢?context-param在启动容器时首先运行,并被放置在容器上下文中。 此处导入spring的配置文件是用于spring的ContextLoaderListener侦听程序。 此监听程序具有ContextLoade类,用于从此配置文件中获取信息。 进行Spring容器的初始化。 因为是以注释方式开发的,所以实际上只能删除一个spring配置文件,并且可以删除上面的星号。此监听器是用于读取Spring的配置文件,如前所述。这是Spring提供的防止内存泄漏的监听程序。 如果使用struts2框架或其他类库,则使用I
16、ntrospector (检查)机制获取Bean对象的信息以进行独特的设计。 但是遗憾的是,这些框架和类库在分析类后没有从内存中删除,在内存中残留了大量的静态资源,因此无法回收垃圾,发生了严重的内存泄漏。 作为服务器直接表现的内存使用量随时间上升,最后的结果当然是服务器瘫痪了。 因此,通过在这里追加这个监听程序,可以帮助更好地再利用内存资源。Spring编码过滤器应该能够理解此配置,但请注意,如果将forceEncoding参数设置为true,则无论请求的编码是什么格式,都会强制采用在encoding中设置的编码此外,响应也根据在encoding中指定的编码进行设置。 此外,不建议将编码设置为gb2312或gbk格式。 请使用基于Unicode的UTF-8编码。此过滤器很好,使用Hibernate的延迟负载
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中铁集装箱运输有限责任公司招聘普通高校毕业生40人笔试模拟试题及答案解析
- 2026河南金渠钼业有限公司市场化选聘贸易副总经理1人笔试备考试题及答案解析
- 犍为县2026年上半年公开考核招聘教育类事业单位工作人员(16人)笔试模拟试题及答案解析
- 2026江苏事业单位统考镇江市集中招聘138人笔试参考题库及答案解析
- 2026黑龙江大庆市肇源县医疗卫生专项人才引进22人笔试备考试题及答案解析
- 2026福建教师招聘统考三明市宁化县招聘7人笔试备考试题及答案解析
- 2026年新疆和田学院招聘事业编制工作人员(72人)考试备考题库及答案解析
- 2026年枣庄滕州市校园招聘教师 (山师站)考试备考题库及答案解析
- 2026浙江事业单位统考绍兴市新昌县招聘42人考试备考题库及答案解析
- 2026年浙江省绍兴市柯桥区杨汛桥镇中学初三英语试题复习第三套试卷含解析
- 八年级下册道德与法治全册知识点清单
- 四川省拟任县处级党政领导职务政治理论水平任职资格考试题全套共12套
- 护工初级考试题及答案
- 入党积极分子发展对象考试真题汇编带答案详解(考试直接用)
- 药品谈判技巧培训
- 浙江省强基联盟2025-2026学年高三上学期10月联考生物试题(含答案)
- 思维导图与信息技术结合
- 春思的课件李白
- 【《基于STM32的智能家居系统设计》14000字(论文)】
- 量具储存知识培训课件
- 《5美丽社区我维护》教学设计-2024-2025学年劳动四年级上册皖教版
评论
0/150
提交评论