235.7.7. 거래 참여


camel-mybatis 아래에 트랜잭션 관리자를 설정하는 것은 표준 MyBatis SqlMapConfig.xml 파일 외부의 데이터베이스 구성을 외부화하는 것을 포함하므로 약간 짧을 수 있습니다.

첫 번째 부분에는 DataSource 를 설정해야 합니다. 이는 일반적으로 Spring 프록시에서 래핑해야 하는 풀( DBCP 또는 c3p0)입니다. 이 프록시를 사용하면 DataSource 를 사용하지 않아 Spring 트랜잭션에 참여할 수 있습니다(MyBatis SqlSessionFactory 가 이 작업을 수행합니다).

<bean id="dataSource" class="org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy">
    <constructor-arg>
        <bean class="com.mchange.v2.c3p0.ComboPooledDataSource">
            <property name="driverClass" value="org.postgresql.Driver"/>
            <property name="jdbcUrl" value="jdbc:postgresql://localhost:5432/myDatabase"/>
            <property name="user" value="myUser"/>
            <property name="password" value="myPassword"/>
        </bean>
    </constructor-arg>
</bean>
Copy to Clipboard Toggle word wrap

이는 속성 자리 표시자를 사용하여 데이터베이스 구성을 외부화할 수 있다는 추가적인 이점이 있습니다.

그러면 트랜잭션 관리자가 최외의 DataSource 를 관리하도록 구성됩니다.

<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource"/>
</bean>
Copy to Clipboard Toggle word wrap

mybatis-spring SqlSessionFactoryBean 은 동일한 DataSource 를 래핑합니다.

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <!-- standard mybatis config file -->
<property name="configLocation" value="/META-INF/SqlMapConfig.xml"/>
    <!-- externalised mappers -->
<property name="mapperLocations" value="classpath*:META-INF/mappers/**/*.xml"/>
</bean>
Copy to Clipboard Toggle word wrap

그런 다음 camel-mybatis 구성 요소는 해당 팩토리로 구성됩니다.

<bean id="mybatis" class="org.apache.camel.component.mybatis.MyBatisComponent">
    <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>
Copy to Clipboard Toggle word wrap

마지막으로 트랜잭션 정책은 트랜잭션 관리자 맨 위에 정의된 후 평소와 같이 사용할 수 있습니다.

<bean id="PROPAGATION_REQUIRED" class="org.apache.camel.spring.spi.SpringTransactionPolicy">
    <property name="transactionManager" ref="txManager"/>
    <property name="propagationBehaviorName" value="PROPAGATION_REQUIRED"/>
</bean>

<camelContext id="my-model-context" xmlns="http://camel.apache.org/schema/spring">
    <route id="insertModel">
        <from uri="direct:insert"/>
        <transacted ref="PROPAGATION_REQUIRED"/>
        <to uri="mybatis:myModel.insert?statementType=Insert"/>
    </route>
</camelContext>
Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat