Strut&Spring&Hibernate结合开发举例
2008-06-06 10:11
465 查看
装载应用程序环境:
Web.xml中添加:
<!—共有的spring注入可以配置在此处,以逗号分割-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
struts-config.xml中添加
<!—如果多模块开发时,可以在每个struts-config.xml文件中指定各自的plugin-->
1,使用Spring的ActionSupport
publicclassSearchSubmitextendsActionSupport{|(1)
……
ApplicationContextctx=
getWebApplicationContext();|(2)
BookServicebookService=
(BookService)ctx.getBean("bookService");|(3)
……
}
2,覆盖RequestProcessor
struts-config.xml中添加
<controllerprocessorClass="org.springframework.web.struts.DelegatingRequestProcessor"/>|(1)
spring-config.xml中增加
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN""http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<beanid="bookService"class="ca.nexcel.books.business.BookServiceImpl"/>
<!—name必须和struts中path一致,如果是子模块的path,必须在此处带上子模块路径-->
<beanname="/searchSubmit"
class="ca.nexcel.books.actions.SearchSubmit">|(1)
<propertyname="bookService">
<refbean="bookService"/>
</property>
</bean>
</beans>
3,将动作管理委托给Spring
struts-config.xml中修改
<actionpath="/searchSubmit"
type="org.springframework.web.struts.DelegatingActionProxy"|(1)
input="/searchEntry.do"
validate="true"
name="searchForm">
<forwardname="success"path="/WEB-INF/pages/detail.jsp"/>
<forwardname="failure"path="/WEB-INF/pages/search.jsp"/>
</action>
spring-config.xml中增加
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<beanid="bookService"class="ca.nexcel.books.business.BookServiceImpl"/>
<!—name必须和struts中path一致,如果是子模块的path,必须在此处带上子模块路径-->
<beanname="/searchSubmit"
class="ca.nexcel.books.actions.SearchSubmit">
<propertyname="bookService">
<refbean="bookService"/>
</property>
</bean>
</beans>
日志拦截:
Spring日志的查看:
将Log4j.properties文件放到WEB-INF/classes下面,可以查看日志详细信息
Hibernate的整合开发:
删除asm-2.2.3.jar
Web.xml中添加:
<!—共有的spring注入可以配置在此处,以逗号分割-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
struts-config.xml中添加
<!—如果多模块开发时,可以在每个struts-config.xml文件中指定各自的plugin-->
<plug-inclassName="org.springframework.web.struts.ContextLoaderPlugIn">
<set-propertyproperty="contextConfigLocation"value="/WEB-INF/applicationContext.xml"/>
</plug-in>
1,使用Spring的ActionSupport
publicclassSearchSubmitextendsActionSupport{|(1)
……
ApplicationContextctx=
getWebApplicationContext();|(2)
BookServicebookService=
(BookService)ctx.getBean("bookService");|(3)
……
}
2,覆盖RequestProcessor
struts-config.xml中添加
<controllerprocessorClass="org.springframework.web.struts.DelegatingRequestProcessor"/>|(1)
spring-config.xml中增加
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN""http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<beanid="bookService"class="ca.nexcel.books.business.BookServiceImpl"/>
<!—name必须和struts中path一致,如果是子模块的path,必须在此处带上子模块路径-->
<beanname="/searchSubmit"
class="ca.nexcel.books.actions.SearchSubmit">|(1)
<propertyname="bookService">
<refbean="bookService"/>
</property>
</bean>
</beans>
3,将动作管理委托给Spring
struts-config.xml中修改
<actionpath="/searchSubmit"
type="org.springframework.web.struts.DelegatingActionProxy"|(1)
input="/searchEntry.do"
validate="true"
name="searchForm">
<forwardname="success"path="/WEB-INF/pages/detail.jsp"/>
<forwardname="failure"path="/WEB-INF/pages/search.jsp"/>
</action>
spring-config.xml中增加
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<beanid="bookService"class="ca.nexcel.books.business.BookServiceImpl"/>
<!—name必须和struts中path一致,如果是子模块的path,必须在此处带上子模块路径-->
<beanname="/searchSubmit"
class="ca.nexcel.books.actions.SearchSubmit">
<propertyname="bookService">
<refbean="bookService"/>
</property>
</bean>
</beans>
日志拦截:
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<beanid="bookService"class="ca.nexcel.books.business.BookServiceImpl"/>
<beanname="/searchSubmit"class="ca.nexcel.books.actions.SearchSubmit">
<propertyname="bookService">
<refbean="bookService"/>
</property>
</bean>
<!--Interceptors-->
<beanname="logger"
class="ca.nexcel.books.interceptors.LoggingInterceptor"/>|(1)
<!--AutoProxies-->
<beanname="loggingAutoProxy"class="org.springframework.aop.framework.autoproxy.
BeanNameAutoProxyCreator">|(2)
<propertyname="beanNames">
<value>/searchSubmit</valuesgt;|(3)
</property>
<propertyname="interceptorNames">
<list>
<value>logger</value>|(4)
</list>
</property>
</bean>
</beans>
Spring日志的查看:
将Log4j.properties文件放到WEB-INF/classes下面,可以查看日志详细信息
Hibernate的整合开发:
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN""http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<beanname="/userLogin"class="com.yourcompany.struts.action.UserLoginAction">
<propertyname="userLoginService">
<refbean="userLoginService"></ref>
</property>
</bean>
<beanid="userLoginService"class="com.yourcompany.business.UserLoginServiceImpl">
<propertyname="dao">
<refbean="TempUserDAO"></ref>
</property>
</bean>
<beanid="TempUserDAO"class="com.yourcompany.dao.TempUserDAO">
<propertyname="sessionFactory">
<reflocal="sessionFactory"/>
</property>
</bean>
<beanid="dataSource"class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<propertyname="driverClassName"
value="oracle.jdbc.driver.OracleDriver">
</property>
<propertyname="url"
value="jdbc:oracle:thin:@10.40.43.133:1521:zxin">
</property>
<propertyname="username"value="zxdbm_ismp"></property>
<propertyname="password"value="zxin_smap"></property>
</bean>
<beanid="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<propertyname="dataSource">
<reflocal="dataSource"/>
</property>
<propertyname="hibernateProperties">
<props>
<propkey="hibernate.dialect">
org.hibernate.dialect.Oracle9Dialect
</prop>
<propkey="hibernate.show_sql">true</prop>
</props>
</property>
<propertyname="mappingResources">
<list>
<value>com/yourcompany/dao/TempUser.hbm.xml</value>
</list>
</property>
</bean>
<beanid="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<propertyname="sessionFactory">
<reflocal="sessionFactory"/>
</property>
</bean>
</beans>
报错:java.lang.NoSuchMethodError:org.objectweb.asm.ClassVisitor.visit
删除asm-2.2.3.jar
相关文章推荐
- 无需容器的对象关系映射 ------->用 Hibernate 和 Spring 开发事务持久层
- 【web开发】java-spring-hibernate中"Unknown entity"的问题
- SSH(struts+spring+hibernate)迅速开发--附录2 Struts 常用标签&amp;国际化(1)
- Struts、Hibernate复习 && 了解与Spring结合的SSH
- SSH(struts+spring+hibernate)迅速开发--附录2 Struts 常用标签&国际化(2)
- Spring-hibernate使用全xml配置结合方式搭建开发
- SSH(struts+spring+hibernate)迅速开发--第十章 记录日志(2)
- Struts+Spring+Hibernate开发实例
- 不用spring,hibernate超傻瓜JAVA开发(javabean+数组)
- 关于hibernate与spring的结合使用中的配置文件
- spring&hibernate学习实践点滴
- MyEclipse开发SSH(Struts+Spring+Hibernate)入门
- J2EE框架(Struts&Hibernate&Spring)的理解
- eclipse上安装spring开发插件&下载Spring开发包
- spring&&hibernate异常整理
- 开发日志:解决spring版本导致的Cannot find the declaration of element 'beans',查看jar中的spring的版本
- SpringMVC+Spring+Hibernate+Mybatis+Shiro等整合及开发(1)
- 框架篇:Spring+SpringMVC+hibernate整合开发
- Spring结合hibernate配置文件
- Spring -- spring结合aop 进行 tx&aspectj事务管理配置方法