关于spring 配置文件中的一些疑问。

我记得以前用hibernate时,如果是在执行增,删,改,查的操作时,首先是要先获得一个session,然后还要开事物和关事物。现在在学ssh。请问获得Session,开... 我记得以前用hibernate时, 如果是在执行增,删,改,查 的操作时,首先是要先获得一个session,然后还要开事物和关事物。现在在学ssh。请问获得Session ,开事物和关事物由谁去管理了?????spring的配置文件中的点看不懂,能帮我解释下吗?只要讲每个bean是做什么的就行了。谢了。

<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation"
value="/WEB-INF/hibernate.cfg.xml">
</property>
</bean>

<!-- 事务管理器 -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>

<!-- 通知 -->
<tx:advice id="txadvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED"/>
<tx:method name="del*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="*" read-only="true"/>
</tx:attributes>
</tx:advice>

<aop:config>
<aop:pointcut id="alldao" expression="execution(* com.car.dao..*.*(..))"/>
<aop:advisor pointcut-ref="alldao" advice-ref="txadvice" />
</aop:config>
其实只要解释下sessionFactory 和 transactionManager 就可以了。
展开
 我来答
searchNew
2011-10-20
知道答主
回答量:32
采纳率:0%
帮助的人:15.7万
展开全部
学一个东西,首先知道怎么去用。
如果你现在知道怎么配置就行了。

熟练应用以后,可根据配置的类的信息阅读spring源码

spring是使用JTA对全局事务进行控制。
spring配置execution表达式,通过AOP进行对execution表达式下的类进行方法过滤
然后对方法与<tx:method 中配置的方法进行正则匹配
如name="add*" propagation="REQUIRED"
表示以add开头的方法的事务隔离级别是REQUIRED,
REQUIRED的隔离级别表示:如果当前没有事务,就创建一个事务;如果已经存在事务,则加入事务
如果对JTA比较熟悉的话,很容明白其中原理

关于spring事务回滚:
Spring默认只在抛出运行时和unchecked exceptions时才进行事务回滚。 也就是说,当抛出一个 RuntimeException 或其子类例的实例时。从事务方法中抛出的Checked exceptions将 不 被标识进行事务回滚。

当然你也可以通过<tx:method>中配置no-rollback-for和rollback-for明确指定哪些异常不进行回滚和进行回滚
交遇哩
2011-10-20 · 超过15用户采纳过TA的回答
知道答主
回答量:112
采纳率:0%
帮助的人:45.5万
展开全部
这东西不好说.....
定义的事物管理器呢 就是 spring 的 声明式事物
<!-- 通知 -->
<tx:advice id="txadvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED"/>..... 事物属性中声明事物的规则
<aop:config>
<aop:pointcut id="alldao" expression="execution(* com.car.dao..*.*(..))"/>
<aop:advisor pointcut-ref="alldao" advice-ref="txadvice" />
</aop:config>
意思是在你的项目中所有的包里面所有的类里面的方法有
add或del或update开头的方法 时事物管理器就会 开事物和关事物
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sqlserverjdbc
2011-10-20 · 超过12用户采纳过TA的回答
知道答主
回答量:81
采纳率:0%
帮助的人:24.2万
展开全部
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation"
value="/WEB-INF/hibernate.cfg.xml">
</property>
</bean>
sessionFactory里面放的是Hibernate配置文件的地址,不过你也可以在essionFactory上面配置一个dataSource 里面可以存放hibernate里面的各种配置 hibernate。xml就可以省略了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式