本节书摘来自异步社区《jQuery EasyUI开发指南》一书中的第1章,第1.8节,作者:王波著,更多章节内容可以访问云栖社区“异步社区”公众号查看
1.8 搭建SSH开发框架
工欲善其事,必先利其器。在Java Web开发中,之所以采用MyEclipse,并且采用最流行的MVC架构来开发,就是因为MyEclipse的扩展性。它可以说是无限扩展的,需要什么就安装什么,这些来自第三方的插件,可以非常方便地为项目服务,提供强大的功能。而Tomcat也可以成功解析这些插件。这样,既可以为程序员开发提供便利,又可以节省开发成本,何乐而不为呢?
在manage项目中,需要搭建一个SSH开发框架。SSH是Struts+Spring+Hibernate的一个集成框架,是目前较流行的一种Web开发模式。
首先,需要去网上下载这些框架。具体的下载方法就不赘述了,基本上在百度搜索它们,都可以搜索到符合条件的下载地址。可以到这些框架的官方网站下载,官方网站不但提供JAR包,还会提供源代码和参考文档。如果英文不好,可以选择在CSDN下载。
1.8.1 Struts2的集成
第一种集成方式是将Struts 2.x包里需要的JAR包导入/WebRoot/WEB-INF/lib目录下,再新建一个struts.xml配置文件到src目录下即可。使用这种方式集成Struts2会让所有的JAR文件都集成在Web App Libraries这个库文件夹下。如果还要集成其他JAR包的话,那么随着JAR包集成得越来越多,这个库文件夹下的文件也会越来越多,这样非常不利于管理,也会显得凌乱。
第二种集成方式是打开项目的“BuildPath”,配置“Build Path”,选择“Add Library”→“MyEclipse Libraries”,此时,会列出所有MyEclipse自带的JAR库。从列表中,找到“Struts2 Core Libraries”,单击“完成”。此时,MyEclipse会自动生成一个Struts2 Core Libraries库文件夹来管理这些JAR文件。从项目的构建路径可以看到,单独把一些JAR文件放到一个库文件夹中管理非常有条理,也显得很专业。受到了这种启发,我们会想,如何让自己手动导入的JAR文件,也可以做到这样呢?
第三种集成方式是打开项目的“Build Path”,配置“Build Path”,选择“Add Library”。此时,会弹出一个新的对话框,从列表中选择“User Library”。再次弹出一个新对话框,单击“User Libraries”按钮。此时,就可以新建用户库了。
单击“New”按钮,输入名称Struts2。
单击“Add JARs”,找到Struts2文件夹,选中需要添加的文件,单击“确定”。
此时,我们手动添加的JAR文件也可以被统一放到Struts2文件夹中管理了。一般来说,初学者可能更倾向于第一种集成方式,但作为一个成熟的开发人员,最好还是把一类JAR文件放入一个文件夹中管理。
不论以哪种方式集成Struts2,都需要在src目录下建立一个struts.xml文件,用于配置Struts的业务逻辑。在web.xml里需要配置Struts2用到的核心过滤器:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
1.8.2 Spring3的集成
第一种方式是打开项目的“Build路径”,配置“Build路径”,选择“Add Library”→“MyEclipse Libraries”,此时,会列出所有MyEclipse自带的JAR库。从列表中,找到“Spring 3.0 Core Libraries”,单击完成。
在src目录下建立一个applicationContext.xml文件,用于配置。在web.xml里需要配置Spring用到的监听器:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
添加Struts2和Spring整合的插件struts2-spring-plugin-2.0.12.jar。如果不使用这个插件,则需要在struts.xml里加入一些配置:
<constant name="struts.objectFactory"
alue="org.apache.struts2.spring.StrutsSpring ObjectFactory" />
如果采用第一种方式集成Spring3,其实已经完成了Struts2和Spring3搭配的过程,但如果需要再搭配Hibernate,就需要采用第二种方式了。
将鼠标定位到manage项目名称上,单击右键,依次选择菜单“MyEclipse”→“Add Spring Capabilities…”,在弹出的对话框里勾选“Spring 3.0 AOP”“Spring 3.0 Core”“Spring 3.0 Persistence Core”“Spring 3.0 Persistence JDBC”“Spring 3.0 Web”等5个核心库,注意将它们复制到/WebRoot/WEB-INF/lib目录下,再单击“Next”,配置存放Spring配置文件的路径与名称,将JAR包放在WebRoot/WEB-INF/lib下,配置文件放在src下即可,配置文件名为applicationContext.xml。
创建数据源,切换到“MyEclipse Database Explorer”窗口。在左边“DB Browser”的窗口里,右击选择“New”,新建一个数据源。在弹出的窗口中,根据自己项目所建的数据库来选择配置,引入连接驱动JAR包。
sshDriver
jdbc:oracle:thin:@localhost:1521:manage
配置好之后,单击“Test Driver”来测试配置连接是否成功。成功了再进行下一步操作。
“Schema Details”选择连接映射的数据库,没必要将全部数据库连接进来。根据用户名选择需要连接的数据库,连接成功后可以查看表结构。
配置好以后,选中它,将它的“Open connection”打开看一看,看能否将数据连接过来。
1.8.3 Hibernate的集成
搭建好了Struts2和Spring3这两个框架,可以很好地帮助我们控制项目的请求转向和管理实体类。现在,让我们搭建项目数据通道的最后一层——持久层Hibernate,搭建好这一层,目前业内最流行的SSH框架就建立起来了。
(1)将鼠标定位到Web Project项目名称上,单击右键,依次选择菜单“MyEclipse”→“Add Hibernate Capabilities…”。
(2)选择“Hibernate 3.3”,注意将库复制到/WebRoot/WEB-INF/lib目录下。
(3)在对话框中选择“Spring configuration file”,表示希望将Hibernate托管给Spring进行管理,这是将Hibernate与Spring进行整合的基础。然后单击“Next”。
(4)在出现的对话框中选择“Existing Spring configuration file”。因为之前已经添加了Spring的配置文件,所以这里选择的是已存在的配置文件。MyEclipse会自动找到存在的那个文件。然后在“SessionFactory Id”中输入Hibernate的SessionFactory在Spring配置文件中的Bean ID的名字,这里输入sessionFactory即可。然后单击“Next”。
(5)在出现的对话框中的“Bean ID”里面输入数据源在Spring中的Bean ID的名字,这里输入dataSource。然后在“DB Driver”里面选择刚刚配置好的ssh,MyEclipse会将其余的信息自动填写到表格里面。然后单击“Next”。
(6)在出现的对话框中取消“Create SessionFactory class”,单击“Finish”即可。
Hibernate的主要作用就是跟数据库建立联系,通过配置的方式,在项目中生成以类的方式来管理表的形式,方便在开发过程中直接使用,不用手动去写。但如果数据库中的表过多,Hibernate会在项目文件夹下生产过多的映射文件,也就是.hbm.xml文件,这算是一个美中不足吧。总之,我们只是事先把Hibernate框架集成到项目当中,至于用不用,是另外一回事。到这里,整个项目的框架搭建就算是初步成形了。
Hibernate Reverse Engineering反向生成Pojo类,自动生成映射关系。
(1)再次进入“MyEclipse Database Explorer”视图,全选所有的表,右击选择“HibernateReverse Engineering...”操作。
(2)单击“Java src folder”右边的“Browse...”选项,设置到自己新建好的包下面。
(3)再选择*.hbm.xml和POJO映射,建议不用选择“Create abstract class”。不然,会生成大量抽象类文件。
(4)下一步再选择“Id Generator”的生成策略,选择“native”。
(5)接下来,保持默认选项,直接单击“Finish”完成这项操作。
(6)最后回到“MyEclipse JavaEnterprise”视图,查看是否已成功生成映射文件。
到这里,已经将SSH整合的所有操作都做好了,接下来就是进行编码工作,修改相应的XML配置文件,直到最后完成整个项目的开发。发布Web项目,启动Tomcat服务器,可以测试之前的配置工作是否成功。