⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spring事务.txt

📁 Java大部分的基础知识,EJB3,EJB2,WEBSERVICE,SOAP,JMS,MQ,还有些面试题
💻 TXT
字号:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
	<property name="configLocation" value="classpath:hibernate.cfg.xml"/>
	<property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration" />
</bean>

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
	<property name="dataSource">
		<ref bean="dataSource" />
	</property>
	<property name="hibernateProperties">
		<props>
			<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
		</props>
	</property>
	<property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration" />
</bean>

<tx:advice id="methodTransaction" transaction-manager="transactionManager">
	<tx:attributes>
		<tx:method name="select*" read-only="true" />
		<tx:method name="*" />
	<tx:attributes>
</tx:advice>
<aop:config>
	<aop:pointcut id="facadeClass" expression="execution(* facade.*.*(..))" />
	<aop:advisor advice-ref="methodTransaction" pointcut-ref="facadeClass" />
</aop:config>

附A Spring中的所有事务策略

PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。
PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。
PROPAGATION_MANDATORY--支持当前事务,如果当前没有事务,就抛出异常。
PROPAGATION_REQUIRES_NEW--新建事务,如果当前存在事务,把当前事务挂起。
PROPAGATION_NOT_SUPPORTED--以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
PROPAGATION_NEVER--以非事务方式执行,如果当前存在事务,则抛出异常。
PROPAGATION_NESTED--如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则进行与PROPAGATION_REQUIRED类似的操作。

附B Spring中所有的隔离策略:

ISOLATION_DEFAULT
ISOLATION_READ_UNCOMMITED
ISOLATION_COMMITED
ISOLATION_REPEATABLE_READ
ISOLATION_SERIALIZABLE 

EJB的事务类型:





Nerver :        不参与事务,如果参与产生RemoteException
NotSupported:   不能参与
Supports:       如果调用者正在参与事务,相应的EJB调用也可以参与事务,否则不能
Mandatory       如果调用者有一个事务,相应的EJB可以参与事务,否则,TransactionRequiredException
Required        如果调用者有一个事务,相应的EJB可以参与事务,否则,容器将在调用相应的EJB之前,开始一个事务.
                当方法调用完成以后,即提交该事务.
RequiresNew     在调用相应的EJB之前,开始一个新的事务,当方法调用返回时,即提交这个事务.






  前六个策略类似于EJB CMT:常量名相同,因此,对EJB开发人员来说,应该立刻就感到熟悉。第七个(PROPAGATION_NESTED)是Spring所提供的一个特殊变量。它要求事务管理器或者使用JDBC 3.0 Savepoint API提供嵌套事务行为(如Spring的DataSourceTransactionManager),或者通过JTA支持嵌套事务。

  事务属性中的readOnly标志表示对应的事务应该被最优化为只读事务。这是一个最优化提示。在一些情况下,一些事务策略能够起到显著的最优化效果,例如在使用Object/Relational映射工具(如:Hibernate或TopLink)时避免dirty checking(试图“刷新”)。

  在事务属性中还有定义“timeout”值的选项,指定事务超时为几秒。在JTA中,这将被简单地传递到J2EE服务器的事务协调程序,并据此得到相应的解释。

Spring AOP
	Spring AOP是基于动态代理和@AspectJ注记样式,Spring AOP框架不是一个完整的AOP实现,主要目的是帮助IOC容器解决一些企业应用的常见问题。
	JDK代理可以代理任何接口,
	CGLIB代理主要代理类,Bean没有实现接口,Spring将使用CGLIB进行代理。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -