`
L.G.Alexander
  • 浏览: 155749 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

6、S2SH及其配置文件详解

阅读更多


S2SH及其配置文件详解
Strut2:处理页面表单提交过来的信息,处理完之后将结果返回给浏览器显示。
怎么处理?举例:输入校验、国际化等。
Spring:核心就DI和AOP,DI注入对象实例,AOP说白了就是在方法执行之前或者执行之后执行一些动作。
Hibernate:与数据库打交到,把对数据库的操作变成对对象的操作,就是ORM映射工具。
web.xml里面:
      
 <listener>
		<listener-class>
			org.springframework.web.context.ContextLoaderListener
		</listener-class>
	</listener>
监听器采用观察者模式,Tomcat在启动后,根据我们的配置就会读取一些信息,ContextLoaderListener在容器里面的

一个监听器。
在应用服务器Tomcat启动之后,根据
<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath*:applicationContext-*.xml</param-value>
	</context-param>
加载配置文件后,同时产生BeanFactory,BeanFactory放在ServletContext里面。
       <filter>
		<filter-name>hibernateFilter</filter-name>
		<filter-class>
			org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
		</filter-class>
	</filter>

OpenSessionInViewFilter实现了容器里面的Filter接口,OpenSessionInViewFilter复杂打开session或者关闭

session.不用我们去打开或者关闭session,由OpenSessionInViewFilter来给我们做。举例:对于一个web,可能很多

人打开,让我自己去关闭可能会关错。
applicationContext-common.xml中
事物管理器:
  
 <!-- configure transaction manager-->
    <bean id="transactionManager" 

class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory">
            <ref bean="sessionFactory"/>
        </property>
    </bean>
    <!-- configure transaction's propagational feature -->
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes >
            <tx:method name="add*" propagation="REQUIRED"/>
            <tx:method name="modify*" propagation="REQUIRED"/>
            <tx:method name="delete*" propagation="REQUIRED"/>
            <tx:method name="*"  read-only="true"/>
        </tx:attributes>
    </tx:advice>
    <!-- configure which class's which method take part in transaction -->
    <aop:config>
        <aop:pointcut id="allManagerMethod" expression="execution(* com.oa.manager.*.*(..))" />
        <aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice" />
    </aop:config>
这个事物让spring来给我做,避免了我们手动开启或者关闭事物造成的错误。
分享到:
评论
1 楼 yellowallen 2010-12-07  

您好!刚看了你的文章受益很多,非常感谢,不过我配置了ssh以后出现了一个很奇怪的问题,如果可以,麻烦用你的经验帮忙解答一下好吗?

情况是这样的,再我配置完S2SH以后,我使用spring来管理struts2 的action
可是很奇怪的是:我调用action中的execute()方法的时候访问时正常的,当我调用action里其他自定义的方法的时候,老是报

java.lang.NoSuchMethodException: $Proxy64.loadBranch()
找不到合适的方法。不太了解,麻烦指点一下了。谢谢。。

我的邮箱是:yellowallen@163.com

相关推荐

Global site tag (gtag.js) - Google Analytics