今天闲来无事,又拿起来了以前的Java框架看了起来,于是临时打起来了一个Struts2+Hibernate的框架Demo,这其中也遇到了一些问题,接下来将搭建的过程给大家分享一下。
一、首先先把Struts2框架所需的Jar包引入进来。
读者可自行下载struts2-blank-2.1.0.war压缩包,展开后是一个非常简单的项目,从WEB-INF/lib目录中可以看到5个库文件,解释如下:
包名 |
说明 |
commons-logging-1.0.4.jar |
日志管理 |
freemarker-2.3.8.jar |
表现层框架,定义了struts2的可视组件主题(theme) |
ognl-2.6.11.jar |
OGNL表达式语言,struts2支持该EL |
struts2-core-2.0.10.jar |
struts2的核心库 |
xwork-2.0.4.jar |
webwork的核心库,自然需要它的支持 |
这是些必须的Jar包,但是你也可以再倒入其他的jar包,譬如说我还加入了Json所需的jar包。然后书写Web.xml文件,想必大家对这个应该很熟悉了。
定制struts2所需的filter:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
然后大家还以定制字符过滤。
再然后我们需要导入hibernate了。在这里我是用的是Hibernate的4.1.5final版本。下载该zip包后解压缩,导入lib文件夹下的requried下的所有jar包,我由于应用了c3p0来管理数据池,所以我还导入了lib下的optional文件夹下的c3p0文件夹下的jar包。
下面我贴上hibernate.cfg.xml的书写内容(待会我会把工程打包放上来):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Database connection setting -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost/blogontent</property>
<property name="connection.username">root</property>
<property name="connection.password">joker</property>
<!-- 指定连接池最大连接数 -->
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.min_size">1</property>
<!-- 指定连接池里的超时时长 -->
<property name="hibernate.c3p0.timeout">5000</property>
<!-- 显示Sql语句-->
<property name="show_sql">true</property>
<!-- 数据库方言 -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>
<!-- 映射文件 -->
<mapping class="com.app.pojo.UserInfo"></mapping>
</session-factory>
</hibernate-configuration>
加上了上述注释大伙应该能看明白。
大家一定要注意看hibernate提供的文档,里面有些东西说的很明白。
我把代码一会贴上,大家自己看,然后我把遇到的问题总结一下:
第一个是书写hibernate.cfg.xml中对于dtd的定义<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
加入不写这句话,系统会提示hibernate.cfg.xml找不到;
还有就是以前的方式是采用className+hbm.xml的方式建立对应的实体类的配置文件,在这里我是用了注解的方法。这样少了配置文件,能节省一些时间。
还有就是,以前是采用SSH框架进行开发,现在少了Spring,对于逻辑层的配置着实有些不便,需要对每个类在应用是进行初始化,而且在书写dao层是最好写一个通用Dao,并且定义成abstract。我感觉这样子的话能够更好地实现代码的重用,当然我只是搭配环境,dao写的比较差,但要是应用在真正项目中,就不会这么乱来了。下面我把自己的工程发上来。欢迎大家下载。
大家下载后解压缩,然后用Eclipse导入就可以了。我用的是jdk7。
下载地址在:点击打开链接