Hibernate与Struts2和Spring组合开发
来源:互联网 发布:算法小时代 编辑:程序博客网 时间:2024/04/29 23:55
1.1组合Hibernate与Spring
1.在Eclipse中,新建一个Webproject。
选择JavaEE5.0。
2.给该项目增加Hibernate开发能力,增加Hibernate相关类库到当前项目的BuildPath,同时也提供了hibernate.cfg.xml这个配置文件。
选择Hibernate3.1,
勾选Core包。
3.给该项目增加Spring开发能力,增加spring相关类库到当前项目的BuildPath,同时也提供了applicationContext.xml文件。注意:最好把applicationContext.xml文件保存到当前项目的WebRoot/WEB-INF的根目录下。
选择Spring2,勾选Core,PersistenceCore包(会自动选择AOP包),
勾选Web包。
4.删除hibernate.cfg.xml文件,修改applicationContext.xml文件的内容,增加sessionFactory和dataSource的设置。修改的内容如下所示:
<?xmlversion="1.0"encoding="UTF-8"?>
<beansxmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<beanid="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<propertyname="driverClassName"
value="oracle.jdbc.driver.OracleDriver">
</property>
<propertyname="url"
value="jdbc:oracle:thin:@liuweiv3000:1521:ora9">
</property><propertyname="username"value="scott"></property>
<propertyname="password"value="tiger"></property>
</bean>
<beanid="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<propertyname="dataSource">
<refbean="dataSource"/>
</property>
<propertyname="hibernateProperties">
<props>
<propkey="hibernate.dialect">
org.hibernate.dialect.Oracle9Dialect
</prop>
</props>
</property>
<propertyname="mappingResources">
<list>
<value>cn/com/jobedu/shop/model/Catalog.hbm.xml</value>
</list>
</property>
</bean>
</beans>
进入buildpath,添加commons-dbcp-1.2.2.jar和commons-pool-1.3.jar。
5.通过MyEclipse的反向工程向导方式,生成POJO类和对应的映射文件。
6.修改applicationContext.xml文件中<propertyname="mappingResources">元素的内容。如
下所示:
<propertyname="mappingResources">
<list>
<value>cn/com/jobedu/shop/model/Catalog.hbm.xml</value>
<value>cn/com/jobedu/shop/model/Product.hbm.xml</value>
</list>
</property>
7.编写DAO接口。
packagecn.com.jobedu.shop.dao;
importjava.util.List;
importcn.com.jobedu.shop.model.Catalog;
publicinterfaceCatalogDao{
publicvoidcreate(Catalogc);
publicCataloggetCatalog(Longid);
publicListgetCatalogs();
publicvoidupdate(Catalogc);
publicvoidremove(Longid);
}
8.编写DAO接口的实现类,实现类使用Spring提供的帮助类。示意如下:
packagecn.com.jobedu.shop.dao.hibernate;
importjava.util.List;
importorg.springframework.orm.hibernate3.support.HibernateDaoSupport;
importcn.com.jobedu.shop.dao.CatalogDao;
importcn.com.jobedu.shop.model.Catalog;
publicclassCatalogDaoHibernateextendsHibernateDaoSupportimplementsCatalogDao{
@Override
publicvoidcreate(Catalogc){
//HibernateTemplatetemplate=getHibernateTemplate();
//template.save(c);
getHibernateTemplate().save(c);
}
@Override
publicCataloggetCatalog(Longid){
return(Catalog)getHibernateTemplate().get(Catalog.class,id);
}
@Override
publicListgetCatalogs(){
returngetHibernateTemplate().find("fromCatalogorderbyiddesc");
}
@Override
publicvoidremove(Longid){
//Catalogc=this.getCatalog(id);
//getHibernateTemplate().delete(c);
getHibernateTemplate().delete(getCatalog(id));
}
@Override
publicvoidupdate(Catalogc){
getHibernateTemplate().update(c);
}
}
9.修改applicationContext.xml文件,增加对Dao实现类的配置。
<beanid="catalogDao"
class="cn.com.jobedu.shop.dao.hibernate.CatalogDaoHibernate">
<propertyname="sessionFactory">
<refbean="sessionFactory"/>
</property>
</bean>
1.2再组合Struts2,完成Struts2、Spring和Hibernate的三者组合
0.修改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.增加Struts2相应类库,增加struts2-spring-plugin-x-x-x.jar文件。(Struts的压缩包中,Struts所提供的。)
2.需要拷贝struts.xml文件到src跟目录下,再修改struts.xml文件,进行常量配置。
<struts>
<constantname="struts.objectFactory"value="spring"/>
</struts>
3.修改web.xml文件,配置Spring监听器和上下文变量。
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
修改web.xml文件,增加OpenSessionInViewFilter的设置。
<filter>
<filter-name>lazyLoadingFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class></filter>
<filter-mapping>
<filter-name>lazyLoadingFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
4.编写Action类。
5.配置struts.xml文件。
struts.xml
<!DOCTYPEstrutsPUBLIC
"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constantname="struts.objectFactory"value="spring"/>
<includefile="struts-default.xml"/>
<packagename="default"extends="struts-default">
<actionname="hello"class="helloBean">
<result>hello.jsp</result>
</action>
....
</package>
</struts>
6.修改applicationConext.xml,默认情况下,Spring从下面的文件中寻找为action所做的配置。
<?xmlversion="1.0"encoding="UTF-8"?>
<beansdefault-autowire="byName">
<beanid="helloBean"class="cn.com.jobedu.HelloWorld"scope="prototype"/>
...
</beans>
7.编写所需要的JSP文件。
8.部署,调试整个项目。
<!--配置事务管理器--><beanid="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<propertyname="sessionFactory">
<reflocal="sessionFactory"/>
</property>
</bean>
<!--配置事务特性,配置add、delete和update开始的方法,事务传播特性为
required-->
<tx:adviceid="txAdvice"transaction-manager="transactionManager">
<tx:attributes>
<tx:methodname="add*"propagation="REQUIRED"/>
<tx:methodname="delete*"propagation="REQUIRED"/>
<tx:methodname="update*"propagation="REQUIRED"/>
<tx:methodname="*"read-only="true"/>
</tx:attributes>
</tx:advice>
<!--配置那些类的方法进行事务管理,当前cn.com.jobedu.crm.service包中的子包、
类中所有方法需要,还需要参考tx:advice的设置-->
<aop:config>
<aop:pointcutid="allManagerMethod"expression="execution(*
cn.com.jobedu.crm.service.*.*(..))"/>
<aop:advisoradvice-ref="txAdvice"pointcut-ref="allManagerMethod"/>
</aop:config>
- Hibernate与Struts2和Spring组合开发
- Hibernate+Spring+Struts2+ExtJS 开发
- Struts2+Hibernate+Spring开发过程
- Struts2+Spring+Hibernate整合开发
- Spring、Struts2、Hibernate集成开发
- struts2+spring+hibernate入门开发
- Struts2与Spring、Hibernate整合
- Struts2-Spring和Hibernate整合
- Spring与Hibernate两种组合方式
- Spring与Hibernate两种组合方式
- Spring与Hibernate两种组合方式
- SSH组合工程之-struts2&hibernate&spring(工程下载)
- 【Java EE (Struts2 + Spring + Hibernate)开发】:Struts2(二)之【控制文件上传和下载】
- Hibernate+Spring+Struts2+ExtJS开发CRUD功能
- Hibernate+Spring+Struts2+ExtJS开发CRUD功能
- Hibernate+Spring+Struts2+ExtJS开发CRUD功能
- Hibernate+Spring+Struts2+ExtJS开发CRUD功能
- spring+hibernate+struts2搭建开发环境
- linux内核移植 s3c2440
- 开源一个小代码库
- Google的创意广告
- Avaya 132-S-911.3 认证题库
- UpdatePanel中如何实现导出功能
- Hibernate与Struts2和Spring组合开发
- 保存帖子
- typedef小结
- 从Java Keystore文件中提取私钥、证书
- 编程的首要原则
- SQL笔记
- flash输入框应该怎么样才能确保光标正常跳动????
- Linux 指令大全(2)
- server.xml配置解析