来自:http://www.blogjava.net/lishunli/archive/2010/03/11/315055.html
使用 Annotation 并对 DAO 层封装具有分页功能的 S2SH 整合实例
李顺利
2010 年 1 月 24 日
目录
使用 Annotation 并对 DAO 层封装具有分页功能的 S2SH 整合实例,李顺利, Annotation , DAO 层封装,分页, SSH 整合,实例,黎活明,传智播客,巴巴 运动网
现在 Annotation 越来越流行,最近一段时间也学了一些, EJB3.0 、 Hibernate 、 Spring 等都很好地支持 Annotation ,而且熟悉了 Annotation 的话整个项目开发时间会缩短,代码封装比较好,但是封装带来的就是代码阅读就比较困难了。 Annotation 也是一门知识,可以选 择使用 Annotation 还是其他。个人认为由 Sun 官方支持的 EJB 规范会越来越流行,此时如果使用基于 Annotation 的 SSH 框架很容易转移到 Struts+EJB+Spring 的项目中,而且使用 Annotation ,很容易实现 0 配置,像在这个实例中就一个配置,这样避免了配置文件多而不知所措的情况。
Jdk1.5+Struts2.1.8+Hibernate3.3+Spring3.0+MySql5.0+MyEclipse8.0
到官网下 载上面开发环境中的框架和工具,安装完成后。在 Myeclipse 中新建名为 SSHWithAnnotationDemo 的 web project ,添加 SSH 整合所需要的包,这里详细说一下需要哪些包?
xwork-core-2.1.6.jar 、 aopalliance-1.0.jar 、 commons-logging-1.0.4.jar 、 commons-fileupload-1.2.1.jarcommons-io-1.3.2.jar 、 freemarker-2.3.15.jar 、 ognl-2.7.3.jar 、 struts2-convention-plugin-2.1.8.1.jar 、 struts2-core-2.1.8.1.jar 、 struts2-spring-plugin-2.1.8.jar
其中下文会对 struts2-convention-plugin 插件进行详细讲解。
slf4j-log4j12.jar 、 antlr-2.7.6.jar 、 commons-collections-3.1.jar 、 dom4j-1.6.1.jar 、 ejb3-persistence.jar 、 hibernate3.jar 、 hibernate-annotations.jar 、 hibernate-commons-annotations.jar 、 javassist-3.9.0.GA.jar 、 jta-1.1.jarlog4j.jar 、 slf4j-api-1.5.8.jar
org.springframework.web-3.0.0.RC1.jar 、 org.springframework.aop-3.0.0.RC1.jar 、 org.springframework.asm-3.0.0.RC1.jarorg.springframework.beans-3.0.0.RC1.jar 、
org.springframework.context-3.0.0.RC1.jar 、 org.springframework.core-3.0.0.RC1.jar 、 org.springframework.expression-3.0.0.RC1.jar 、 org.springframework.jdbc-3.0.0.RC1.jar 、 org.springframework.orm-3.0.0.RC1.jar 、 org.springframework.test-3.0.0.RC1.jar 、 org.springframework.transaction-3.0.0.RC1.jar
还有一些其他的辅助 Jar 包:
mysql-connector-java-5.1.7-bin.jar 、 aspectjweaver.jar 、 commons-dbcp-1.2.2.jar 、 commons-pool.jar 、 junit-4.6.jar
上面的 Jar 包都可以在相应的框架 Jar 文件夹里面找到,具体的 Jar 包作用如果不清楚的话请 Google 一下。为了方便,顺利提供所有 这些 Jar 包下 载。
顺利提供下载:
文 件 名:Struts2.1.8+Hibernate3.3+Spring3.0整合所需Jar包.rar
下载地址:http://usc.googlecode.com/files /Struts2.1.8%2BHibernate3.3%2BSpring3.0%E6%95%B4%E5%90%88%E6%89%80%E9%9C%80Jar%E5%8C%85.rar
加入 Jar 包后,就可以进行 SSH 框架的整合了。
使用 Annotation 对 Struts 配置可以实现 0 配置,这个时候就不需要对 Struts.xml 进行任何的配置, 0 配置的实现主要是使用 struts2-convention-plugin 插件。大致 介绍下 convention-plugin 插件。
1. 默 认所有的结果页面都存储在 WEB-INF/content 下
2. 命 名规则:去掉类名的 Action 部分。然后将将每个分部的首字母转为小写,用 ’-’ 分割。
a) 举 例: TestAction ,那么访问的时候就是 test.action;
b) 举 例: StudentListAction ,那么访问的时候就是 student-list.action 。
3. 常 用的 Annotation
a) @Controller : 申明 Struts 为控制层;
b) @Scope ( "prototype" ) : 申明 Struts 的范围为原型;
c) @Results :全局的结果集,可以配置 execute 执行后跳转的页面。
像 @Results ({ @Result (name = "success" , location = "teacher/teacherList.jsp" ), @Result (name = "input" , location = "/index.jsp" ) })
通过 convention-plugin 插件就可以很简单的配置 Struts 的配置, 如果想 更好地了解 convention-plugin 插件请查看下面的网站或者自己 Google 一下。
http://cwiki.apache.org/WW/convention-plugin.html
http://javeye.iteye.com/blog/358744
http://yzl45.iteye.com/blog/346632
代码举例:
import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.convention.annotation.Results; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller;
import com.opensymphony.xwork2.ActionSupport; /** * 测试 convention - plugin 插件 */
@Controller @Scope ( "prototype" ) @Results ( { @Result (name = "success" , location = "test/test.jsp" ), @Result (name = "input" , location = "/index.jsp" ) }) // 成功的页面 会跳到 WebRoot/WEB-INF/content/test/test.jsp, 失败会跳 到 WebRoot/index.jsp public class TestAction extends ActionSupport { /* * @see com.opensymphony.xwork2.ActionSupport#execute() */ @Override public String execute() throws Exception { System. out .println( " 测试 convention-plugin 插件 " ); return INPUT ; } }
|
Hibernate 的 Annotation 方式很类似于 EJB 中的 JPA ,主要的 Annotation 注解是: @Entity 、 @Table 、 @Id 、 @GeneratedValue 、 @Column 。具体的注解请上网查看一下。这里介绍一种简便的方法生成基于 Annotation 的 Hibernate 持久类。
1. 使用 Myeclipse 添加对 Hibernate 的支持
右键项目,选择 MyEclipse 后选择 Add hibernate Capabilities (一般都会先添加对 Spring 的支持后在添加对 Hibernate 的支持,这样会使用 Spring 管理 Hibernate )
这个时候就不需要选择 Jar 包了, Hibernate 的 Jar 已经加入进来, Next ,选择 Spring 的配置文件,这样可以使用 Spring 进行管理 Hibernate (这也是为什么要先添加对 Spirng 的支持) ,Next
选择已经存在的 Spring 配置文件
后选择已经创建好的 DateSource 。
即可,详情请阅读 Struts+Spring+Hibernate整合注册登录 —— 使用 Myeclipse 快速开发 ,里面有详细的介绍。
2. 进入生成 DB Brower 视图(可以通过 windows->show View 找到)
找到后连接 MySql 数据库后,即可生成 Hibernate 的持久类
生成的实例代码
@Entity @Table (name = "student" , catalog = "test" ) public class Student implements java.io.Serializable {
// Fields
private Integer no ; private String name ; private String sex ; private Integer age ; private Double score ; private Date eduTime ;
// Constructors
/** default constructor */ public Student() { }
/** minimal constructor */ public Student(String name, String sex) { this . name = name; this . sex = sex; }
/** full constructor */ public <span style 发表评论 |
评论