Spring 、Spring Hibernate
、Spring :Spring 。(AOP , )
:hibernate org.springframework.orm.hibernate3.HibernateTransactionManager
、 :
1. :
a) PROPAGATION_REQUIRED: 。 , 。 。Spring TransactionDefinition 。
b) PROPAGATION_SUPPORTS: 。 , 。
c) PROPAGATION_MANDATORY: 。 , 。 , 。
d) PROPAGATION_REQUIRES_NEW: 。 , , 。
e) PROPAGATION_NOT_SUPPORTED: 。 , 。
f) PROPAGATION_NEVER: 。 , 。
g) PROPAGATION_NESTED: , 。 , ROPAGATION_REQUIRED 。
2. :
a) ISOLATION_DEFAULT: 。Spring PlatfromTransactionManager .
b) ISOLATION_READ_UNCOMMITTED: 。 。 , 。
c) ISOLATION_READ_COMMITTED: 。 。
d) ISOLATION_REPEATABLE_READ: , 。 。
e) ISOLATION_SERIALIZABLE: 。 、 、 。 。
3. : , 。
4. : , 。 , 。
5. : , 。
RuntimeException , 。( EJB )
。 。
、
1. Spring 。
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
2. パラメータの ( )
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*" />
<tx:method name="find*" read-only="true"/>
</tx:attributes>
</tx:advice>
3.AOPの :
<aop:config>
<!-- -->
<aop:advisor advice-ref="txAdvice" pointcut="execution(* com.qiujy.service.*.*(..))"/>
</aop:config>
4. に づく の :
1) マネージャを します.
2)Springの へのサポートを にする: tractionn-manager で されているトランザクションマネージャの がtractionManagerである は、この は されます.「tx:annotationn driven/」と くことができます.
3)@Transactionalを して、 するクラスまたは に を する.トランザクションパラメータの は、Spring referenceを する.
@Transationはインターフェースにも できますが、このようにすることは められません.インタフェースの は の ぎ を き ぐことができないので、 を きやすいです.
、Spring hibernate:
1.hibernateを するために なカバン:
2.classipathにHibernateのプロファイルを します.
3.Springプロファイルにsession Factoryを する :
<bean id=「session Factory」class=「org.spring frame ebook.orm.hibernate 3.Local Session FactoryBen」
<property name=「configLocation」value=「classipath:hibernate.cfg.xml」/>
<property name=「dataSource」ref=「dataSource」/>
hibernateが を してオブジェクト のマッピングを う 、このクラスを します.
org.springframe ebook.orm.hibernate 3.annotations.AnnotationSession FactoryBen
4.デカップリングのために. たちがヒベルナのDAO に したのは、ヒベルナSession Factoryです.
を しないならば、Springから されるHibernature Template と、Hbernature DaoSupport を することができます.
5.hibernateのコードは と わりません. の もSpringの システムで しています.