您的位置:首页 > 编程语言 > Java开发

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-->
<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必须和strutspath一致,如果是子模块的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必须和strutspath一致,如果是子模块的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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: